- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多个饼图的视觉效果(我有一个包含多个单独饼图的图形集)。我希望每个饼图的大小能够反射(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/
我有一个网格样式的饼图(同一网格中有多个饼图),类似于 http://www.zingchart.com/docs/chart-types/pie/#pie__trellis_chart .我使用的代
(我以前问过一次类似的问题,但这个问题又出现了。) 我使用 ZingCharts 制作了一个非常简单的饼图,但即使 ZingCharts 网站上的所有示例都显示了每个切片的百分比,我也无法显示要显示的
我们使用套接字库从我们的服务中下载数据。我正在执行以下操作,将这些数据发送到 zingchart(数据按摩后): myChart.series[0].values.push([xVal, yVal])
在此页面上:http://www.zingchart.com/docs/chart-types/pie/ 许多示例饼图显示每个切片的百分比。但我无法重现这个。如何显示每个切片的百分比。请注意,我还将单
我正在尝试使用 ZingChart 创建多维堆叠条形图。据我所知: 由于某种原因,图像没有显示。它的链接是 ( https://drive.google.com/file/d/0B14IyWv9zwZ
需要绘制一个完全响应且视觉准确的 zingchart。据我所知,我们需要为要在其中绘制 zingchart 的 div 提供以 % 为单位的高度和宽度(例如:100% 或 80%)。在编写 zingc
我想使用 ZingChart 为 x 和 y 轴添加标题。例如,如果我的 x 轴显示年份(2010、2011、2012 等),我希望标题“会计年度”显示在每个年份标签下方 同样,如果我在 y 轴上测量
我想知道是否有任何方法可以在渲染图形后动态添加 scale-x 标记,也许是通过像这样的函数: zingchart.exec('myChart', 'addscalexmarker', { t
我有一个混合图表,带有顶部放置的值框。除了第一个值之外,所有值的背景色都从值框中消失了。这以前工作正常,因为白色背景出现在所有值框后面,并且代码没有更改,所以我不知道为什么背景颜色突然消失了。下面是我
是否可以在zingchart中画一 strip 边框的线? 我有一个 "type" : "line", "values" : [something], "line-color": "#some
我有一个包含多个饼图的视觉效果(我有一个包含多个单独饼图的图形集)。我希望每个饼图的大小能够反射(reflect)每个饼中数据的大小。例如,显示 2010 年收入为 1,000,000 美元的饼图将小
我正在使用向下钻取饼图向下钻取到节点的子节点等。问题是在某些时候,子节点不包含任何数据。有没有一种方法可以在图表内显示一条消息或类似的东西,而不是一个白色区域(因为没有系列数据)来通知用户没有更多的数
我需要在我的图表上添加一些额外的标签,所以我使用了形状。结果如下: http://jsfiddle.net/z3n3qobm/91/ 但我需要将示例中的圆圈与 X 轴的标签对齐。图表必须是响应式的
html file in controller.js $scope.myObj = { "type": "bar", "utc": true, "plotarea":{ "m
每当我以百分比设置 ZingChart 的高度和宽度以使其与所有屏幕尺寸兼容时,它都不起作用。 示例:如果我设置 1% 的高度和 1% 的宽度,则不会发生这种情况。 我将高度和宽度更改为: zingc
因此,我被要求向使用 ZingChart 构建的条形图添加额外的标签层。我们基本上有一个单系列柱状图,用于绘制子类别内特定类别的标准评级。 目前子类别在图表中根本没有作用,因为我绘制了类别中每个标准的
这是我正在尝试做的一个例子: http://jsfiddle.net/4pb8uzt8/13/ $scope.myJson = { 'plot': { 'styles': ['#fff
我想创建一个从 MySQL 数据库中提取的值的静态图表。图表格式为(x 轴:dd/mm/yy hh:mm:ss(对应于 mysql 数据库的时间戳)),y 轴为 double 值。我能够从 MySql
我不确定在 html 页面中将以下 zingchart click 事件处理代码放在哪里。 zingchart.click = 函数(dataStr){ var data = eval('(' + d
我正在尝试提取通过 CFCHART 生成的 zingchart 的 SVG 内容并将其传递给我的服务器以将 SVG 转换为 PNG $('#downloadGraph').click(function
我是一名优秀的程序员,十分优秀!