【发布时间】:2015-07-02 15:55:14
【问题描述】:
我有这张图:
http://jsfiddle.net/5c4sa6vb/1/
我一直试图弄乱它并尝试翻转 y 轴。我需要的是刻度从左下角的 0,0 开始。我试过弄乱域和范围,但似乎无法解决我的问题:/
var y = d3.scale.linear()
.range([0, width-200]);
【问题讨论】:
标签: javascript d3.js svg axis
我有这张图:
http://jsfiddle.net/5c4sa6vb/1/
我一直试图弄乱它并尝试翻转 y 轴。我需要的是刻度从左下角的 0,0 开始。我试过弄乱域和范围,但似乎无法解决我的问题:/
var y = d3.scale.linear()
.range([0, width-200]);
【问题讨论】:
标签: javascript d3.js svg axis
这是一个有效的版本:fiddle
首先,将轴域元素的顺序从([0,whatever]) 切换到([whatever,0]) 将反转比例。
第二,一个小错误。您只是在y 比例中使用width 而不是height。因此,由于该图不是正方形,因此长度不合适!
最后,我注意到您在这里和那里有一堆额外的调整,减去 200、axisMovement 变量、svg 周围的额外 g 元素等。所以你会有一个如果你清理掉那些不需要的部分,时间会更轻松。使用您所做的约定设置边距的目的是使这些额外的调整是不必要的。利用这些优雅的小技巧让人们真正迷上了 d3 :)
【讨论】:
在 3D 中反转 Y 轴的方法很简单:
改变
var y = d3.scale.linear()
.range([0, width-200]);
为
var y = d3.scale.linear()
.range([width-200 , 0]);
只需交换参数就可以了!
【讨论】: