在highcharts

时间:2016-03-01 14:05:14

标签: javascript jquery svg highcharts

我正在使用highcharts库来显示饼图,我正在尝试在图表上的标签文本之前显示图像/图标。 我试图在svg中使用显示图像的方式添加它,但它没有用。因为highcharts在标签上的onclick动作中添加了我的图像。

format: '<image width="40" height="40" xlink:href="{point.img}" /> <span><defs>'
  +'<pattern id="{point.name}" patternUnits="userSpaceOnUse" width="100" height="100">'
    +'<image xlink:href="{point.img}" x="0" y="0" width="30" height="30" />'
  +'</pattern>'
+'</defs></span> {point.name} <span style="fill:url(#{point.name}); stroke: red; stroke-width:2px;"></span>: {point.percentage:.1f} %'

我尝试了两种使用<image/>代码的方法,另一种使用<defs><pattern>代码的方式

我想要显示图像,我该怎么做?可能吗 ?这是我的fiddle

1 个答案:

答案 0 :(得分:1)

我会使用dataLabels.useHTML标志设置为true的html标签,请参阅:

    plotOptions: {
        pie: {
            allowPointSelect: true,
            cursor: 'pointer',
            dataLabels: {
                enabled: true,
                useHTML: true,
                format: '<img width="40" height="40" src="{point.options.img}" /> <span> {point.name} <span style="fill:url(#{point.name}); stroke: red; stroke-width:2px;"></span>: {point.percentage:.1f} %',
                style: {
                    color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                }
            }
        }
    },

演示:http://jsfiddle.net/jc45j7Ln/2/

注意:由于标签是以HTML格式呈现的,因此SVG的工具提示将在HTML下呈现。在这种情况下,请参阅this question