Javascript GoogleCharts api:修复表中的列
我使用gviz_api创建了一个表。该表包含由字符串值和数值组成的列。api自动选择列自身呈现的顺序;但是,我希望渲染的顺序与我提供描述的顺序相同 为了创建表,我传入了一个描述,它是一个字典,数据是每行的字典列表。我认为,因为描述是一个字典,排序是不明确的,因此可以随机选择。有没有办法强制api使用我在描述中指定的列顺序或其他方式 以下是我的示例说明和数据代码:Javascript GoogleCharts api:修复表中的列,javascript,google-visualization,Javascript,Google Visualization,我使用gviz_api创建了一个表。该表包含由字符串值和数值组成的列。api自动选择列自身呈现的顺序;但是,我希望渲染的顺序与我提供描述的顺序相同 为了创建表,我传入了一个描述,它是一个字典,数据是每行的字典列表。我认为,因为描述是一个字典,排序是不明确的,因此可以随机选择。有没有办法强制api使用我在描述中指定的列顺序或其他方式 以下是我的示例说明和数据代码: descr = {'field1': ('string', 'Field1'), 'field2': ('numbe
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在向表中添加列时使用字母顺序。我的列名有不同的标签(即('string','label')中的第二个条目不是按字母顺序排列的。为了解决这个问题,我在标签名前面加了一个数字(即('string','1label')),以确保列的顺序符合我的要求
如果有其他人找到了一个更简单的解决方案,请让我知道。我决定从源头上纠正这个问题。我按照特定的顺序指定一个查询,并以同样的方式期望得到结果 我已对
gviz_api.py
(第488行
)进行了局部修改
DataTables
现在将按照为创建DataTable
提供的相同顺序显示/公开其数据(在toJS()
、toJSON()
等中返回)
我现在不需要一大群笨拙的视图
来确保图表正常工作,这是一个额外的好处
基洛
Change: for key, value in sorted(table_description.items()):
To : for key, value in table_description.items():