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

2 投票
1 回答
620 浏览
提问于 2025-04-18 03:37

我在一个页面上有多个图表,但无论我怎么尝试,都无法改变线条的颜色。我按照官方文档的说明去做,颜色还是没有变化。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',

而且有多个线条的图表会有一个颜色调色板可以选择。但我需要的是单线图的不同颜色。

根据pip显示的内容,我安装的是最新版本。

django-nvd3==0.6.0

1 个回答

1

我知道这个话题很老旧,但我自己在运行时也遇到了这个问题:

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

如果你查看一下这个python-nvd3的lineChart.py(第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”是从他们的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
}

我可能会创建一个补丁请求来修复这个问题。

编辑:我已经创建了一个补丁请求,修复了这个代码示例。

撰写回答