【问题标题】:Create dynamic labels for Google Chart using GChartWrapper使用 GChartWrapper 为 Google Chart 创建动态标签
【发布时间】:2012-10-14 21:08:21
【问题描述】:

我正在使用很棒的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 轴标签,有人知道我会怎么做吗?

【问题讨论】:

    标签: python django google-visualization


    【解决方案1】:

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

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

    请参阅此answer 以获得更详尽的说明。

    这意味着有问题的方法接受一个强制参数index,它是要标记的轴的索引和任意数量的匿名参数(实际标签)。

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

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

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

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

    您可能还想查看示例here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      相关资源
      最近更新 更多