2015-11-06 20 views
0

我剛剛爲使用django-chartit更改系列名稱而瘋狂。我有谷歌的解決方案,但我找不到它。如何使用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

我有相同的困難,發現我跟大家分享的方式:基於this example從chartit演示,它看起來,你可以簡單地重命名DataPool創建期間的一個字段。我使用了示例中的語法(儘管基於PivotDataPool,但它對於任何DataPool來說都沒問題),方法是將列表中的「terms」值更改爲詞典。在這個字典中,鍵是圖表對象中使用的自定義名稱,值是原始字段名稱。

對於你的榜樣,它可能是這樣的:

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>'] 
       }, 
     ... 

我希望這對你的作品,我會很高興地知道,如果有更多的傳統的方式來做到這一點...

0

PolRaguénès的回答指出了我的正確方向。這只是在數據池定義爲包圍該條款必須固定:

userdata = \ 
 
    DataPool(
 
     series= 
 
     [{'options': { 
 
      'source': User_Data.objects.filter(user=request.user.username)}, 
 
      'terms': [ 
 
       'user': 'user', 
 
       'word': 'word', 
 
       {'<your customized name>': 'click_times'}]} 
 
     ])