我正在使用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
答案 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。