1

作为我的 Django 项目的一部分,我正在使用很棒的Google Chart Wrapper创建图表。现在我正在我的视图中使用 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 轴标签,有人知道我会怎么做吗?

4

1 回答 1

2

为了了解如何正确传递标签,了解其*args含义很重要。

*args函数(或本例中的方法)定义中的(星号 + 任意参数名称)表示任意数量(包括 0)的匿名参数。

有关更详尽的解释,请参阅此答案。

这意味着所讨论的方法接受一个强制性参数index,即要标记的轴的索引和任意数量的匿名参数(实际标签)。

知道了这一点,应该已经清楚正确的调用方式label()如下:

chart.axes.label( 0, 'date 1', 'date 2', 'date 3', ... )

其中0是 X 轴的索引,所有其他参数都是各自的标签。

以这种方式实现的原因是标签的数量是未知的——它取决于图表,所以接受任意数量的标签似乎是个好主意。

您可能还想看看这里的例子

于 2012-10-25T10:34:06.107 回答