我有一个用 highcharts.js 创建的图表,其中轴是倒置的(y 是水平的,x 是垂直的)。在图表中,我有几个图,一个是带有图片作为标记的散点图。我遇到的问题是,当图表反转时,标记默认旋转 90 度。有没有办法让标记不被旋转轴倒置的图表?
问问题
1318 次
2 回答
2
这是我能想到的最好的......
function rotateMarker()
{
$.each( $('.highcharts-markers').children(), function(){
var marker = $(this);
// rotate 90 degrees around the middle point of the marker
var rotateAttr = 'rotate(90,'+(parseFloat(marker.attr('x'))+parseFloat(marker.attr('width'))/2)+','+marker.attr('y')+')';
marker.attr('transform',rotateAttr);
});
}
下一个问题是在绘图完全渲染之前您不能运行此代码。对于 highcharts 动画,我不得不将其设置为 setTimeout。
在这里看小提琴。
回应评论
我最初使用的是从左到右相同的图像。对于“镜像”问题,您可以旋转 270 度,使其与原来的方向相同吗?
在此处查看更新的小提琴。
于 2013-02-27T16:44:39.463 回答
0
var markers= document.getElementsByClassName("highcharts-markers");
for(var i= 0; i< markers.length; i++) {
var items= markers[i].childNodes;
for(var j= 0; j< items.length; j++) {
var bbox= items[j].getBBox(); var cx= bbox.x+ bbox.width/2; var cy= bbox.y+ bbox.height/2;
items[j].setAttribute("transform", "rotate(90" + ", " + cx + ", " + cy + ")");
}
}
}
于 2017-07-26T00:03:59.053 回答