gpt4 book ai didi

python - 通过 gviz_api 为谷歌图表提供颜色等自定义属性

转载 作者:太空狗 更新时间:2023-10-30 01:21:58 26 4
gpt4 key购买 nike

我在通过 python 层 gviz_api 将颜色等 custom_properties 传播到我的 google 图表时遇到问题。

我想创建一个带有单独颜色条的条形图,例如此处的示例:https://developers.google.com/chart/interactive/docs/gallery/barchart#BarStyles

但我不知道如何通过 gviz_api ( http://code.google.com/p/google-visualization-python/ ) 进行设置。

我可以以任何方式提供数据,字典、列表、连音符,一次一行,只要我可以单独为条形着色。这是我最近的非工作尝试,generate.py:

import gviz_api
def main():
# Creating the data
description = {"test" : ("string", "Test name"),
"duration" : ("number", "Duration")}
data = [dict(test="test A", duration=1000, custom_properties={"role":"color:green"}),
{"test": "test B", "duration": 4000}]

# Loading it into gviz_api.DataTable
data_table = gviz_api.DataTable(description, custom_properties={"role":"style"})
data_table.LoadData(data)

# Creating a JSon string
json = data_table.ToJSon(columns_order=("test", "duration"), order_by="test")

# Read page_template from file
f = open('template.html', 'r')
page_template = f.read()
# Putting the JSon string into the template
print page_template.format(json)

if __name__ == '__main__':
main()

以及对应的template.html:

<html>
<script src="https://www.google.com/jsapi" type="text/javascript"></script>
<script>
google.load('visualization', '1', {{packages:['corechart']}});

google.setOnLoadCallback(drawChart);
function drawChart() {{
var options = {{
title: 'Test results',
legend: 'none',
chartArea: {{ width: "50%", height: "70%" }}
}}

var json_chart = new google.visualization.BarChart(document.getElementById('chart_div'));
var json_data = new google.visualization.DataTable({0}, 0.6);
json_chart.draw(json_data, options);
}}
</script>
<body>
<div id="chart_div"></div>
</body>
</html>

最佳答案

我找到了解决方案。

在您的描述/数据中,添加第三列,其中将包含您的属性(property)。

description = {"test" : ("string", "Test name"),
"duration" : ("number", "Duration"), "property": ("string", '', {'role':'style'})}

data = [dict(test="test A", duration=1000, property = "color:green" ),
{"test": "test B", "duration": 4000, property = "color:red"}]

这应该可以工作,除非列的顺序被弄乱了。确保顺序是测试、持续时间、属性。如果它是测试、属性、持续时间,它就不会工作,并且不会出现错误。如果您最终没有首先进行测试,它将弹出域错误。

希望这可以帮助任何想要这样做的人!

关于python - 通过 gviz_api 为谷歌图表提供颜色等自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27502900/

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