我正在导出我的 am charts 饼图,一些颜色导出正常,但其他颜色在图例中显示为黑色以及饼图的顶部。更奇怪的是,因为它是 3D 饼图,所以边显示正确的颜色就好了。
chart["export"].capture({}, function() {
this.toPNG({multiplier: 2}, function(data) {
if(this.config.fileName == "dynamic_pie_holder") {
$("#pie_image").val(encodeURIComponent(data));
}
if(this.config.fileName == "sector_pie_holder") {
$("#sector_pie_image").val(encodeURIComponent(data));
}
if(this.config.fileName == "dynamic_chart_holder") {
$("#graph_image").val(encodeURIComponent(data));
}
charts_remaining--;
if (charts_remaining == 0) {
$("#export").submit();
}
});
});
我不确定该代码片段是否有很大帮助,但它是我用来导出的内容。双方没有显示为黑色的事实是真正让我失望的。如果我阻止 3D View ,整个表面都是黑色的,您在此图像中也可以看到它
编辑 #1(添加图表创建代码片段)
CreatePie: function(holder, value_source){
if($("#"+holder).length == 0)
return;
var chart;
var legend;
var chartData = $.parseJSON($("#"+value_source).val());
chart = new AmCharts.AmPieChart();
chart.export = {enabled:"true",
libs: {
path: "libraries/amcharts/amcharts/plugins/export/libs/"
},
backgroundColor: "transparent",
backgroundAlpha: 0.3 ,
menu:[],
fileName:holder
};
chart.dataProvider = chartData;
chart.titleField = "title";
chart.valueField = "value";
chart.colorField = 'color';
chart.numberFormatter = {precision:2, decimalSeparator:".", thousandsSeparator:","};
chart.labelRadius = -30;
chart.radius = 80;
chart.labelText = "";//"[[percents]]";
chart.textColor= "#FFFFFF";
chart.depth3D = 14;
chart.angle = 25;
chart.outlineColor = "#363942";
chart.outlineAlpha = 0.8;
chart.outlineThickness = 1;
chart.startDuration = 0;
legend = new AmCharts.AmLegend();
legend.align = "left";
legend.markerType = "square";
legend.maxColumns = 1;
legend.position = "right";
legend.marginRight = 20;
legend.valueText = "$[[value]]";
legend.valueWidth = 100;
legend.switchable = false;
legend.labelText = "[[title]]:";
chart.addLegend(legend);//, 'report_top_pie_legend');
// WRITE
chart.write(holder);
}
-- 注意-- 当我粘贴这个时,我决定显示输入的颜色是什么,并注意到将它们输入数据库的人在某些颜色前后按下了返回键。这导致它们读作\r\n 或\t\r\n。显然,当在屏幕上创建图表时,Amcharts 完全没有问题将其过滤掉,但是当需要导出时,这些并没有被很好地过滤掉。删除那些多余的字符完全解决了我的问题!
很抱歉提出并解决了我自己的问题,但我希望这对将来的人有所帮助。检查源代码以获取真正的颜色!=)
最佳答案
一些区域的颜色例如:
\t\r\n#EA3444
#FFFFFF\r\n
AmCharts 能够在屏幕上毫无问题地过滤掉它,但导出根本不喜欢它,这会导致它们变黑。为什么只在顶部而不是侧面,我不确定。删除那些额外的字符修复它
关于javascript - 为什么 am 图表导出顶部的饼图/图例黑色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48818624/