我正在使用d3图来绘制一些图表。如何使用d3点击x-y轴
我在寻找的东西由我可以翻转按钮上的点击我的轴线。说了这么多我的意思是,我要寻找其无缝地适用于所有类型的像条,折线图的功能,堆栈等
有没有人做过这样的一些真棒工作?请帮助
Here is the sample
http://jsfiddle.net/adityasethi2601/ae5BP/
我正在使用d3图来绘制一些图表。如何使用d3点击x-y轴
我在寻找的东西由我可以翻转按钮上的点击我的轴线。说了这么多我的意思是,我要寻找其无缝地适用于所有类型的像条,折线图的功能,堆栈等
有没有人做过这样的一些真棒工作?请帮助
Here is the sample
http://jsfiddle.net/adityasethi2601/ae5BP/
你也可以绘制图表(垂直&单杠版本)的两个版本,并实现由具有两者之间的“翻转轴”按钮切换知名度类似的效果。
这不是一个坏主意吗?我正在考虑创建一个函数,它可以只是翻转坐标轴,说我的意思是有一个独特的功能,可以为任何图表设置条形或线条或堆栈。 –
如果您仔细安排图表,您应该可以通过SVG Transforms来实现翻转图像,如果需要将其翻译为新边距,然后反转任何仍然想保持水平的文本。
作为一个快速又脏兮兮的例子,我已经调整了你的小提琴,这样当按钮被点击时,一个类将在整个SVG上切换,从而在整个图像上触发一个CSS rotate transform。
的Javascript:
d3.select("div#chart > svg") ///select the svg
.classed("rotate", function(){
return !d3.select(this).classed("rotate");
//check whether it is currently rotated
//and set it to the opposite
});
CSS:
svg.rotate{
/* rotate the entire image */
-webkit-transform: rotate(-90deg);
transform: rotate(-90deg);
}
但是请注意,CSS变换(嵌入网页时,其适用于HTML对象,如整个SVG )并不直接等同于SVG转换,所以我无法对文本元素进行“反向旋转”。要使用SVG转换,您需要将整个图表包装在可应用旋转的<g>
元素中。您还需要找出适当的“旋转中心”坐标,否则将围绕您的(0,0)原点旋转。
但是,这应该给你从哪里开始的想法。
P.S.我还调整了小提琴,以便正确使用JSFiddle格式和用于加载D3的外部资源选项 - 将来使用此格式。
如何做到这一点取决于你使用的规模。原则上,您需要反转输入或输出域。 –
如果你能给我一个例子,我会很高兴。我基本上希望x轴变成y和y变成x。通过这样做,我们将能够看到垂直条而不是水平条。 –
哦,那种翻转。为此,您必须重新绘制整个图表 - 首先用新范围设置刻度,然后在适当的位置绘制条形,线条和轴。我不知道有任何例子。 –