谷歌图表api:修复表中的列
google charts api: fix columns in table
我已经使用gviz_api创建了一个表。该表包含由字符串值和数值组成的列。api自动选择列自身呈现的顺序;但是,我希望渲染按照与我提供描述相同的顺序进行。
为了创建表,我传入了一个描述,这是一个字典,而数据是每行的字典列表。我认为,因为描述是一本字典,所以排序不是明确的,所以可以随意选择。有没有一种方法可以强制api使用我在描述中指定的列的顺序或任何其他方式?
以下是我的示例描述和数据代码:
descr = {'field1': ('string', 'Field1'),
'field2': ('number', 'Field2'),
'field3': ('string', 'Field3'),
'field4': ('string', 'Field3')}
data = [{'field1': 'value1-1', 'field2': value1-2, 'field3': 'value1-3', 'field4': 'value1-4},
{'field1': 'value2-1', 'field2': value2-2, 'field3': 'value2-3', 'field4': 'value2-4}]
data_table = gviz_api.DataTable(description)
data_table.LoadData(data)
code = data_table.ToJSCode(stats_type_name + '_data')
以及事物实际呈现的顺序:
field3 field2 field1 field4
value1-3 value1-2 value1-1 value1-4
value2-3 value2-2 value2-1 value2-4
我希望事物出现的顺序与我在描述中指定的相同:
field1 field2 field3 field4
value1-1 value1-2 value1-3 value1-4
value2-1 value2-2 value2-3 value2-4
我决定从源头上纠正问题。我以特定的顺序指定查询,并以相同的方式期望得到结果。
我对gviz_api.py
(Line 488
)进行了局部修改
Change: for key, value in sorted(table_description.items()):
To : for key, value in table_description.items():
DataTables
现在将按照为创建DataTable
提供的相同顺序呈现/公开它们的数据(在toJS()
、toJSON()
等中返回)。
这是一个额外的好处,我现在不需要一大群笨拙的views
来确保图表的工作!
Kylo
所以我找到了一个破解解决方案。通过观察,我注意到gviz_api在向表中添加列时使用了字母顺序。我的列名有不同的标签(即("string","label")中的第二个条目),它们不是按字母顺序排列的。为了解决这个问题,我在标签名称前加了一个数字(即("string","1label"),以确保列的顺序符合我的要求。
如果其他人找到了一个不那么棘手的解决方案,请告诉我。
相关文章:
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 谷歌地图JS API+JSON-多个标记没有显示
- 标记的实时更新,无需加载页面谷歌地图API V3
- 谷歌图表API:添加空白行到时间线
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- 谷歌地图Api和JS代码不工作
- 谷歌地图API-InfoBubble赢得't关闭-关闭()不会'不起作用
- 如何在多承诺链中处理谷歌地图API V3事件
- 地理定位api和谷歌地图出错
- 谷歌地图api和gMapsLatLonPicker
- 谷歌地图地点API地图未显示
- 关于关键的API谷歌地图
- mark.setDragable(false)在API谷歌地图的main.js中抛出异常
- 隐藏标记出现后缩放- API谷歌地图V3
- Google Drive API;谷歌实时API -我可以把一个实时文件在应用程序文件夹
- 谷歌地图API -谷歌没有定义,异步加载的API
- 如何打印多个调用谷歌分析API谷歌表与应用程序脚本
- Mixpanel细分查询API谷歌电子表格
- 方向API谷歌方向请求失败,因为没有找到