javascript - 为什么 am 图表导出顶部的饼图/图例黑色?

标签 javascript amcharts

我正在导出我的 am charts 饼图,一些颜色导出正常,但其他颜色在图例中显示为黑色以及饼图的顶部。更奇怪的是,因为它是 3D 饼图,所以边显示正确的颜色就好了。

Example of pie chart problem

                        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/

相关文章:

Javascript 错误,不知道它是什么意思

javascript - 如何在 AmCharts 中显示所有条形图、饼图的 LegendText

javascript - 为什么我的 AmChart 在添加新值/订单时没有更新?

javascript - amCharts 为特定图表(不是整个图表)添加 "clickGraphItem"的监听器

javascript - 如何使用嵌套数组在javascript中使用第一个数组作为对象并将数组的其余部分作为值来形成对象

javascript - 如何在 JavaScript 中检查 null 值?

javascript - 仅使用 javascript 创建 iframe

javascript - amcharts不规则网格轴

javascript - Electron +nuxt+amCharts 4 : Unexpected token export

javascript - 范围从 到 包含键和值的数组