gpt4 book ai didi

zingchart - 在ZingChart中设置饼图的大小

转载 作者:行者123 更新时间:2023-12-02 11:29:58 26 4
gpt4 key购买 nike

我有一个包含多个饼图的视觉效果(我有一个包含多个单独饼图的图形集)。我希望每个饼图的大小能够反射(reflect)每个饼中数据的大小。例如,显示 2010 年收入为 1,000,000 美元的饼图将小于显示 2014 年收入为 2,000,000 美元的饼图。

但是大小属性似乎对每个饼图的大小没有影响,无论我只使用数字还是数字加“px”。

此功能实际上适用于饼图吗?如果是这样,有人可以演示一下吗?

最佳答案

我是 ZingChart 团队的成员,我很乐意为您提供帮助。

使用 dataparse 事件,我们可以检索有关要渲染的图表的必要信息,并在渲染发生之前进行适当的计算和修改。在本例中,我们对每个饼的值(value)感兴趣。

下面的代码片段将统计每个饼图的总数并生成百分比修饰符。按照目前的计算,最大的饼的大小将为 100%,而恰好是最大饼的一半的饼的大小将为 50%。如果您愿意,当然可以更改此设置。

哦,如果这太过分了,您可以通过在每个图表的“plot”对象中设置“size”属性来硬编码每个饼图的大小。如果您右键单击并查看图表源,您可以看到这是由我的函数计算得出的。这些值可以是百分比值或以像素为单位的大小数值。

如果您有任何疑问,请告诉我!

// Dataparse is called when the data is ready for the chart
zingchart.dataparse = function (p, d) {
console.log(d);

// Get number of series in graphset, initialize array of 0s
var seriesLength=d.graphset.length;
var total = new Array(seriesLength);
while(seriesLength--) total[seriesLength] = 0;

// Calculate the sum of the values in each series (each pie)
for (var n = 0; n < d.graphset.length; n++) {
for (var m = 0; m < d.graphset[n].series.length; m++) {
total[n] += d.graphset[n].series[m].values[0];
}
}

// Find the largest value in the array of totals
var largest = Math.max.apply(Math, total);
// Calculate % modifier based off of largest value for each pie chart
for (var n=0;n<d.graphset.length;n++){
var sizeModifier=(total[n]/largest)*100;
// Apply the size modifier to the plot object of each pie chart.
d.graphset[n].plot.size = sizeModifier + '%';
}

// Return modified chart object to be rendered.
return d;
}

var oData = {
"layout": "h",
"graphset": [{
"type": "pie",
"plotarea": {
"margin": "0 40"
},
"plot": {
"value-box": {
'visible': 1,
"text":"%v"
}
},
"series": [{
"values": [169]
}, {
"values": [151]
}, {
"values": [142]
}, {
"values": [125]
}]
}, {
"type": "pie",
"plotarea": {
"margin": "0 40"
},
"scaleX": {

},
"scaleY": {

},
"plot": {
"value-box": {
'visible': 1,
"text":"%v"
}
},
"series": [{
"values": [120]
}, {
"values": [89]
}, {
"values": [87]
}, {
"values": [147]
}]
}]
};
zingchart.render({
id: 'chartDiv',
data: oData,
width: 800,
height: 400
});
<script src="http://cdn.zingchart.com/zingchart.min.js"></script>
<div id='chartDiv'></div>

关于zingchart - 在ZingChart中设置饼图的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27735023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com