我正在将数据模块用于HighCharts。我尝试提供每个系列的合计数据的另一列,然后在工具提示中显示该合计,例如“至少每周一次:10(n = 190)”。

注意:总计不一定是点的总和,这就是为什么相对于使用point.total或sum()在数据中将其作为单独的列提供的原因。

从文档看来,我可以使用seriesMapping对象,该对象允许将列自定义分配给特定的点选项。但是,我只能让合计显示其中一项。

例如,如何为“ WiFi热点”系列的“每天”和“至少每周”获得“(n = 190)”?目前,它仅显示“至少每周”。它为其他类别显示“每天:21(n = undefined)”。

任何帮助将不胜感激,谢谢!

这是我的数据...

<pre id="data">Categories,At Least Weekly,Every Day
WiFi Hotspot,10,21,190
myConnect.com Website,18,15,200
MMI Connect App,15,15,191
External Voice Recognition,18,12,300
</pre>


这是我的HighCharts定义...

Highcharts.chart('container', {
    credits: {
        enabled: false
    },
    chart: {
        type: "bar"
    },
     title: {
        text: "Feature Usage"
    },
        tooltip: {
            formatter: function () {
                return this.series.name + ': ' + this.y + ' (n=' + this.point.mytotal + ')';
            }
        },
    xAxis: {
        categories: []
    },
    yAxis: {
        title: {
            text: "Percent"
        }
    },
    data: {
      csv: document.getElementById('data').innerHTML,
            seriesMapping: [{
                mytotal: 3  // total is in column 3
            }]
    },
    plotOptions: {
        series: {
            stacking: 'normal'
        }
    }
});


它在jsfiddle中... https://jsfiddle.net/gregality/6eens9bv/

最佳答案

您有2个系列,因此需要2个映射:

seriesMapping: [{
    x:0,
    y:1,
    mytotal: 3
},{
    x:0,
    y:2,
    mytotal: 3
}]


而对于1系列,x:0y:1的默认映射适用。如果添加第二个映射,则需要显式声明所有映射。

另外,您的CSV已被格式化。您缺少第四列的标题。

https://jsfiddle.net/6eens9bv/4/

关于javascript - 在数据模块中使用HighCharts seriesMapping读取总计列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42008344/

10-09 15:39
查看更多