【问题标题】:Problem in rendering Multiple Drilldown in fusioncharts在 fusioncharts 中渲染 Multiple Drilldown 时出现问题
【发布时间】:2019-09-03 04:28:36
【问题描述】:

我正在使用 Django。我想在 fusioncharts 中使用向下钻取功能。我能够正确地进行第一次钻取。但是当我为第二次深入编写代码时,它显示“没有要显示的数据”。以下代码还以相同类型呈现所有图表。但我想以不同类型呈现子图表。我在下面分享sn-p。

 def chart(request):

    dataSource = {}
    dataSource['chart'] = {
        "caption": "Top 10 Most Populous Countries",
        "showValues": "0",
        "theme": "zune"
        }


    dataSource['data'] = []
    dataSource['linkeddata'] = []

    sbc = MTD.pdobjects.values('Vertical', 'Channel','Brand','Sales_Value')
    sbc_df = sbc.to_dataframe().reset_index(drop=True)#Trying to use filtered model for dataframe
    sbc_df['Sales_Value']=sbc_df['Sales_Value'].astype(float)
    chn_gb=sbc_df.groupby('Channel')['Sales_Value'].sum().reset_index()
    channel=list(chn_gb['Channel'])
    channel_val=list(chn_gb['Sales_Value'])
    sbc_gb=pandas.pivot_table(sbc_df,index=['Vertical','Channel'],values=['Sales_Value'],aggfunc='sum').reset_index()
    brd_gb=pandas.pivot_table(sbc_df,index=['Vertical','Channel','Brand'],values=['Sales_Value'],aggfunc='sum').reset_index()
    for i in range(len(channel)):
      data = {}
      data['label'] = channel[i]
      data['value'] = channel_val[i]

      data['link'] = 'newchart-json-'+ channel[i]
      dataSource['data'].append(data)


      linkData2 = {}

      linkData2['id'] = channel[i]
      linkedchart2 = {}
      linkedchart2['chart'] = {
        "caption" : "Top 10 Most Populous Cities - " + channel[i] ,
        "showValues": "0",
        "theme": "fusion",
        }

      linkedchart2['data'] = []

      sbc_filtered=sbc_gb[sbc_gb.Channel == channel[i]]
      vertical_list=list(sbc_filtered['Vertical'])
      vertical_val=list(sbc_filtered['Sales_Value'])
      for k in range(len(sbc_filtered)):
          arrDara2 = {}
          arrDara2['label'] = vertical_list[k]
          arrDara2['value'] = vertical_val[k]
          arrDara2['link'] = 'newchart-json-'+ vertical_list[k]
          linkedchart2['data'].append(arrDara2)

          linkData1 = {}
          # Inititate the linkData for cities drilldown
          linkData1['id'] = vertical_list[k]
          linkedchart1 = {}
          linkedchart1['chart'] = {
            "caption" : "Top 10 Most Populous Cities - " + vertical_list[k] ,
            "showValues": "0",
            "theme": "fusion",
            }

          linkedchart1['data'] = []

          brd_filtered=brd_gb[(brd_gb.Channel == channel[i]) & (brd_gb.Vertical== vertical_list[k])]
          brd_list=list(brd_filtered['Brand'])
          brd_val=list(brd_filtered['Sales_Value'])
          for j in range(len(brd_filtered)):
              arrDara1 = {}
              arrDara1['label'] = brd_list[j]
              arrDara1['value'] = brd_val[j]
              linkedchart1['data'].append(arrDara1)
          linkData1['linkedchart'] = linkedchart1
          dataSource['linkeddata'].append(linkData1)

      linkData2['linkedchart'] = linkedchart2
      dataSource['linkeddata'].append(linkData2)

      print(dataSource)

    column2D = FusionCharts("column2D", "ex1" , "700", "400", "chart-1", "json", dataSource)
    return render(request, 'table.html',{'output':column2D.render()})

请帮助我正确实现连续钻取。

谢谢

【问题讨论】:

    标签: django python-3.x pandas fusioncharts


    【解决方案1】:

    要更改子图表的图表类型,您需要使用configureLink API方法设置子图表类型,您也可以在不同级别设置不同的图表,前提是每个图表的数据结构正确,这里是怎么办

    myChart.configureLink([
        { type: 'bar2d' },
        { type: 'line' },
        { type: 'pie2d' }
    ]);
    

    这是一个演示 - http://jsfiddle.net/x0c2wo7k/

    请注意上面的示例使用的是普通的 javascript

    【讨论】:

    • 如果我将它作为脚本添加到 html 页面中,我无法获得,并且我在第三次深入研究中得到“没有数据可显示”...帮我渲染图表...
    • 您尝试在第三层渲染哪种图表类型,请检查图表的数据结构是否正确,否则更新上述小提琴并分享链接,将尝试修复它
    • 我要解决的第一个问题是以某种方式呈现第三个图表。(至少在相同类型的第一个图表中)。当我单击第二个图表中的任何数据图时,它显示 ##"No data to display".##
    • 查看我上面的评论,请分享一个样本以便我进行调查
    • jsfiddle.net/kznbap1e 检查这个fid ...我只是从python代码中复制dict(数据源)并给fid ...
    猜你喜欢
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 2013-07-30
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 2022-10-07
    相关资源
    最近更新 更多