首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使轴“智能”和“灵活”,使轴上的起点/终点在D3 V4中是合理的?

如何使轴“智能”和“灵活”,使轴上的起点/终点在D3 V4中是合理的?
EN

Stack Overflow用户
提问于 2016-10-20 14:28:32
回答 1查看 111关注 0票数 1

我有下面的线图(CodePen),正如你所看到的,Y轴不是很聪明.它从0开始,而应该从2200附近的某个地方开始。

我猜这与天平有关:

代码语言:javascript
复制
// set the ranges
var x = d3.scalePoint().range([0, width]);
var y = d3.scaleLinear().range([height, 0]);

但我试过各种方法让它表现出“聪明”和“灵活”的方式,但我做不到。

我怎样才能使轴心变得更聪明?因此,如果明天我给图表提供一组从150开始的不同的数据集,代码就足够聪明,可以绘制相关的轴值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-20 14:57:21

如果不希望Y轴从0开始,则不应该像以前那样将域中的较低值设置为零:

代码语言:javascript
复制
y.domain([0, d3.max(result, function(d) { 
    return d.consumption;
})]);

如果希望Y轴在最小值旁边开始,则应使用:

代码语言:javascript
复制
y.domain([d3.min(result, function(d) {
    return d.consumption; })*0.975,
d3.max(result, function(d) { 
    return d.consumption; })*1.025
]);

在这里,数字0.975和1.025仅仅是使轴在最小值和最大值之后稍微向下运动的值。你可以改变或者移除它们。

以下是您更新的CodePen:http://codepen.io/anon/pen/EgOBvO?editors=0010

PS:在条形图中,强烈建议对Y轴始终使用零基线,但在时间序列中使用Y轴的非零基线(线图)是没有问题的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40157287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档