gpt4 book ai didi

python - 使用 Vincent 将 'domainMax' 属性添加到现有的 Vega 可视化

转载 作者:太空宇宙 更新时间:2023-11-04 03:52:35 25 4
gpt4 key购买 nike

我正在使用 Python 中的 Vincent 创建 StackedBar 可视化。数据来自 pandas dataframe,每列代表一个百分比,每行总和为 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 在他们的文档 [1] 中有“domainMax”,而您需要定位的 Vincent 属性是“domain_max”,可以在 Scales.py [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

关于python - 使用 Vincent 将 'domainMax' 属性添加到现有的 Vega 可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20531715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com