Django-NVD3 - 无法改变线条颜色

时间:2014-04-21 17:09:40

标签: python django django-views nvd3.js

我在一个页面上有多个图表,无论我如何尝试明确说明,我都无法更改行的颜色。我按照官方文档,颜色不会改变。 https://github.com/areski/django-nvd3/blob/master/demoproject/demoproject/views.py#L275

extra_series1 = {"tooltip": {"y_start": "", "y_end": " Mbps"},
               "date_format": tooltip_date,
               'color': '#555555'}

chartdata = {
    'x': xdata,
    'name1': 'Requests Per Second', 'y1': ydata, 'extra1': extra_series1
}

但我可以额外:

    'extra': {
        'x_is_date': True,
        'x_axis_format': '%H:%M:%S',
        'tag_script_js': True,
        'jquery_on_ready': False,
        'color_category':'category10',

具有多行的图形将具有图形的调色板。但是,我需要1个线图的不同颜色。

基于pip显示的内容 - 我有最新版本。

的django-nvd3 == 0.6.0

1 个答案:

答案 0 :(得分:1)

我知道这是一个非常古老的话题,但我自己也遇到了这个问题:

django-nvd3==0.9.7
python-nvd3==0.14.2

如果您查看python-nvd3 lineChart.py (line 27)代码示例,您会看到颜色必须作为关键字参数传递,如下所示:

kwargs2 = {'color': 'red'}
chart.add_serie(y=ydata, x=xdata, name='sine', extra=extra_serie, **kwargs1)

然后,如果你看看 django_nvd3/templatetags/nvd3_tags.py#L67来源你可以看到从每个系列中重新创建了这个相同的关键字参数,就像" extra1"和" extra2"是从their demo_linechart创建的。 因此,如果您想要一条线为红色而另一条线为蓝色,则可以执行以下操作:

chartdata = {
    'x': xdata,
    # series 1
    'name1': 'series 1',
    'y1': ydata,
    'extra1': extra_serie1,
    'kwargs1': { 'color': 'red'}, # <- the important part
    # series 2
    'name2': 'series 1',
    'y2': ydata2,
    'extra2': extra_serie2,
    'kwargs2': { 'color': 'blue'}, # <- the important part
}

我可能会使用修复程序创建一个池请求。

修改:我已经创建了pull request来修复代码示例。