我正在Python中使用Vincent创建StackedBar可视化。数据来自熊猫数据框,每一列代表一个百分比,每一行总计为100%
Vincent / Vega试图提供帮助,并在Y轴上添加了一个缓冲区,以便当我想成为100时最大达到110(%)。
我需要添加的属性是Y比例尺的语法中的“ domainMax”,但是在导入Pandas数据框后,我无法弄清楚如何使用Vincent的PropertySet或类似命令将其添加到其中。
这是手动添加domainMax的数据的示例,任何人都可以建议如何在Python中执行此操作
"scales": [
{
"domain": {
"data": "table",
"field": "data.idx"
},
"name": "x",
"range": "width",
"type": "ordinal"
},
{
"domain": {
"data": "stats",
"field": "sum"
},
"name": "y",
"nice": true,
"range": "height",
"type": "linear",
"domainMax": 100
}
[...]
最佳答案
问题在于Vincent和Vega使用的命名约定略有不同,而这在Vincent文档中并未明确规定。
Vega在其文档上具有“ domainMax” [1],而您需要定位的Vincent属性是在“ Scales.py”中找到的“ domain_max” [2]
因此解决方案是:chart.scales[ref].domain_max = value
在实践中:
chart = vincent.StackedBar(dataframe)
chart.scales[1].domain_max = 100
chart.display()
[1] https://github.com/trifacta/vega/wiki/Scales
[2] https://github.com/wrobstory/vincent/blob/master/vincent/scales.py#L77