【发布时间】:2015-01-15 00:38:07
【问题描述】:
我无法通过 python 层 gviz_api 将 custom_properties(如颜色)传播到我的谷歌图表中。
我想创建一个带有单独颜色条的条形图,例如此处的示例: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>
【问题讨论】:
标签: python google-visualization