我对使用django-chartit更改系列名称感到很疯狂。我有谷歌的解决方案,但我找不到它。
这是我的views.py。我甚至不知道应该在哪个地方添加系列的名称属性。所以我猜这可能应放在series_option
中。但正如你所猜测的那样,一切都没有改变。该系列的名称仍然是“点击时间”
def userdata_chart_view(request):
userdata = \
DataPool(
series=
[{'options': {
'source': User_Data.objects.filter(user=request.user.username)},
'terms': [
'user',
'word',
'click_times']}
])
cht = Chart(
datasource= userdata,
series_options =
[{'options':{
'type': 'column',
'stacking': False},
'terms':{
'word': ['click_times']
},
'name': '搜索次数',
}],
chart_options=
{
'title': {'text': '搜索频率'},
'xAxis': {'title': {'text': '词条'}},
'yAxis': {'title': {'text': '频率'}},
}
)
content1 = {'user_data_chart': cht}
return render(request, 'yigu/charts.html', content1)
答案 0 :(得分:0)
我遇到了完全相同的难度,找到了一种与您分享的方式:根据图表演示中的this example,您可以在DataPool创建过程中简单地重命名字段。我使用了示例中的语法(虽然基于PivotDataPool,但对任何DataPool看起来都没问题......)通过将'terms'值从列表更改为dictionnary。在此词典中,键是图表对象中使用的自定义名称,值是原始字段名称。
对于您的示例,它可能如下所示:
userdata = \
DataPool(
series=
[{'options': {
'source': User_Data.objects.filter(user=request.user.username)},
'terms': {
'user': 'user',
'word': 'word',
'<your customized name>': 'click_times'}}
])
cht = Chart(
datasource= userdata,
series_options =
[{'options':{
'type': 'column',
'stacking': False},
'terms':{
'word': ['<your customized name>']
},
...
我希望这对你有用,我很高兴知道是否有更传统的方法可以做到这一点......
答案 1 :(得分:0)
PolRaguénès的回答指出了我正确的方向。只是在DataPool定义中包含了必须修复的术语:
userdata = \
DataPool(
series=
[{'options': {
'source': User_Data.objects.filter(user=request.user.username)},
'terms': [
'user': 'user',
'word': 'word',
{'<your customized name>': 'click_times'}]}
])