我正在使用令人敬畏的Google Chart Wrapper创建图表作为我的Django项目的一部分。现在我在视图中使用Python创建图表实例,然后将实例添加到模板上下文并成功在模板中显示图表。
我遇到的麻烦是显示一组动态X轴标签。以下是Google Chart Wrapper的相关代码:
def label(self, index, *args):
"""
Label each axes one at a time
args are of the form <label 1>,...,<label n>
APIPARAM: chxl
"""
self.data['labels'].append(
str('%s:|%s'%(index, '|'.join(map(str,args)) )).replace('None','')
)
return self.parent
以及我目前如何在视图中创建图表:
from GChartWrapper import *
chart = Sparkline([1,2,3,4,5,6,7], encoding='text')
chart.axes.label(...) # need to set labels here
我有一个日期字符串列表,我想将其显示为x轴标签,是否有人知道我会如何做到这一点?
答案 0 :(得分:2)
为了了解如何正确传递标签,了解*args
的含义非常重要。
*args
(星号+任意参数名)定义任意数量(包括0)的匿名参数。
有关详细说明,请参阅此answer。
这意味着有问题的方法接受一个强制性参数index
,它是要标记的轴的索引和任意数量的匿名参数(实际标签)。
了解这一点,应该已经清楚,调用label()
的正确方法如下:
chart.axes.label( 0, 'date 1', 'date 2', 'date 3', ... )
其中0
是X轴的索引,所有其他参数都是相应的标签。
以这种方式实现这一点的原因是标签的数量是未知的 - 它取决于图表,因此接受任意数量的标签似乎是个好主意。
您可能还想查看示例here