[英]How to draw a vertical area chart?
事实上,正如您所说,大多数面积图示例(我会说几乎所有)都使用水平区域,即基线水平的版本。
但是,使用 D3 创建垂直面积图(即具有垂直基线)非常容易。 为此,必须使用区域生成器的鲜为人知的x1
和x0
方法。
发生的情况是,由于几乎所有在线示例都是水平面积图,您只能看到x
、 y1
和y0
作为面积生成器的方法。 然而,同样的道理x
单独设置x0
的价值和x1
至null
, y
套y0
的价值和y1
至null
。
话虽如此,您只需要使用x0
设置垂直基线。 检查这个例子:
const svg = d3.select("svg"); const data = [0, 80, 20, 210, 130, 270, 30, 110, 130, 0]; const areaGenerator = d3.area() .x0(0) .x1(d => d) .y((_, i) => i * 15) .curve(d3.curveMonotoneY) const area = svg.append("path") .attr("d", areaGenerator(data)) .style("fill", "teal");
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script> <svg></svg>
简而言之,这些是您需要的方法:
水平面积图:
x
: 在基线中的位置y1
: 与基线的距离y0
: 基线垂直面积图:
y
: 在基线中的位置x1
: 与基线的距离x0
: 基线
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.