图像无法在 highcharts 中正确导出

Posted

技术标签:

【中文标题】图像无法在 highcharts 中正确导出【英文标题】:Image not exporting correctly in highcharts 【发布时间】:2015-07-13 07:02:22 【问题描述】:

我正在尝试将柱形图导出为 JPEG,但无法正确导出。

我认为需要更改图像的尺寸。此外,第一列(曼哈顿)旁边还有一些不需要的文本。这似乎也是一个错误。

这是导出的图像:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Percentage 311 calls pertaining to rats/mice in NYC within 1 block from restaurant</title>

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

        <style type="text/css">
$demo.css
        </style>
        <script type="text/javascript">
$(function () 
    $('#container').highcharts(
        chart: 
            type: 'column'
        ,
        title: 
            text: 'Percentage 311 calls pertaining to rats/mice in NYC within 1 block from restaurant'
        ,
        subtitle: 
            text: 'Source: NYC Open DataSet'
        ,
        xAxis: 
            type: 'category',
            labels: 
                rotation: 0,
                style: 
                    fontSize: '13px'
                
            
        ,
        data: 
            csv: document.getElementById('csv').innerHTML
        ,
        yAxis: 
            min: 0,
            title: 
                text: 'Percentage'
            
        ,
        legend: 
            enabled: false
        ,
        tooltip: 
            pointFormat: 'Percentage: <b>point.y:.2f%</b>'
        ,
        plotOptions: 
            column: 
                grouping: false,
                dataLabels: 
                    enabled: true,
                    rotation: -90,
                    align: 'right',
                    color: '#FFFFFF',
                    format: 'point.y:.2f', // one decimal
                    y: 10, // 10 pixels down from the top
                    style: 
                        fontSize: '13px',
                    
                   
                    
        
    );
);
        </script>
    </head>
    <body>
<script src="../../js/highcharts.js"></script>
<script src="../../js/modules/exporting.js"></script>
<script src="../../js/modules/data.js"></script>
<script src="../../js/themes/dark-unica.js"></script>
<div id="container" style="min-width: 300px; max-width: 900px; height: 400px; margin: 0 auto"></div>
<pre id="csv" style="display:none">
BOROUGH
Manhattan,50.74
Queens,,25.31
Bronx,,,49.68
***lyn,,,,33.28
Staten Island,,,,,39.45
</pre>
    </body>
</html>

JSFiddle

【问题讨论】:

可以在jsfiddle.net提供现场演示吗? JSFiddle 在带有主题的主帖中。 【参考方案1】:

对于主题,您可以使用如下内容:

Highcharts.theme = 
    colors: ["#2b908f", "#90ee7e", "#f45b5b", "#7798BF", ...],

    chart: 
              backgroundColor: ...
              ...
    ,

    style: 

              fontFamily: "sans-serif",

    ,

    .....
;

// Apply the theme
Highcharts.setOptions(Highcharts.theme);

至于导出功能,您可以使用exporting.chartOptions设置要导出的选项,例如图表的宽度和高度:

exporting: 
    chartOptions: 
        chart: 
            width: 300,
            height: 300
        
    

或者标题的字体大小。使用 plotOptions.column.dataLabels.rotation 时会出现不需要的文本。我不知道原因,我认为这可能是 Highcharts 中的一个错误。

这是DEMO

【讨论】:

@SebastianBochan 可能的错误? @PawełFus 可能的错误? 我现在可以以正确的尺寸导出它,但仍然保留不需要的文本。正如您所建议的,这可能是一个错误。 @Viraj 现在不要使用旋转,因为它会以这种方式正确导出。 确实,这是一个错误,由textShadow 选项引起。使用不同的样式,例如:jsfiddle.net/3gvwcdjp/11 或禁用阴影:jsfiddle.net/3gvwcdjp/12 重新打开 issue #3649 - 谢谢!

以上是关于图像无法在 highcharts 中正确导出的主要内容,如果未能解决你的问题,请参考以下文章

Highcharts 导出功能

Highcharts饼图导出,标签渲染两次

如何在highcharts中更改导出文件名

如何在R中将highchart保存为PNG图像?

如何将 HighCharts 图像保存到 PHP 中的项目文件夹中?

如何将 Highcharter 绘图保存为本地磁盘上的图像?