Highcharts散点图图例符号尺寸

3

我有一个问题需要解决,就是在呈现不同符号大小的3D散点图时,无法正确显示图例-请参见http://jsfiddle.net/YyV6x/4/

图例中的符号大小与主图相同,而图例项的位置完全偏移。我尝试强制将图例符号设置为相同的大小:

$(chart.series).each(function(){
    this.legendSymbol.attr('width',8);
    this.legendSymbol.attr('height',8);
}); 

不幸的是,这也会改变符号 X 和 Y 坐标 - 参见http://jsfiddle.net/HB53K/

我该怎么解决这个问题?

谢谢

3个回答

2
您可以在调整 widthheight 之前对每个 chart.series 进行 translate,将它们移动到正确的位置。就像这样(JSFiddle 示例):
$(chart.series).each(function(){
    this.legendSymbol.translate((this.legendSymbol.width/2), ((this.legendSymbol.height/2)-4));
    this.legendSymbol.attr('width',8);
    this.legendSymbol.attr('height',8);
});

它无法解决原始尺寸中图例项之间留下的间距,但至少每个项目的位置都已确定其图例文本。

可能有一些更优雅的解决方法。


+1,看起来很整洁,解决了问题。不过我想知道OP需要在第一次使用时有不同的半径要求是什么? - Rob Schmuecker
谢谢 - 到目前为止最好的解决方案!关于不同半径 - 将第四维度纳入方程,当半径对应某些统计数据时。 - user2723490

1
你可以使用不同的解决方案:为序列设置默认标记,但更改每个点的半径:http://jsfiddle.net/HB53K/5/ 序列示例:
    { 
        name: 'Drinking out',
        data: [
            {
                y: 5,
                marker: {
                    radius: 19
                }
            },{
                y: 8,
                marker: {
                    radius: 19
                }
            },{
                y: 6,
                marker: {
                    radius: 19
                }
            }
        ],
        marker: {
            symbol: 'square',
            //radius: 19 //default value
        }
    }

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接