首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >个性化轴线范围

个性化轴线范围
EN

Stack Overflow用户
提问于 2020-07-11 19:31:05
回答 1查看 31关注 0票数 1

我有这样的价值范围(四亿到六亿)

我想在D3图上创建一个综合的y轴。如果我使用一个日志刻度,那么巨大数字中的所有变化都会被删除,如果我使用一个linearScale,那么小数字中的所有变化也会被删除。

因此,我想做两个轴(一个对另一个,就像在下面的图片),但我不知道是否有更简单的方法。我是否可以指定所有的滴答值来获得一个所有变化都是可见的轴?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-12 05:22:01

在域和范围中使用具有超过两个值的常规线性标度,从而创建分片标度。

例如:

代码语言:javascript
复制
const scale = d3.scaleLinear()
    .domain([0, 5e7, 1e8, 6e8])
    .range([h-10, h/2 + 10, h/2 - 10, 10]);

下面是正在运行的代码:

代码语言:javascript
复制
const svg = d3.select("svg");
const h = 600;
const scale = d3.scaleLinear()
  .domain([0, 5e7, 1e8, 6e8])
  .range([h - 10, h / 2 + 10, h / 2 - 10, 10]);
const axis = d3.axisLeft(scale).tickValues(scale.ticks().concat(d3.range(0, 5e7, 5e6)))(svg.append("g").attr("transform", "translate(100,0)"));
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<svg width="200", height="600"></svg>

不要忘记确保用户理解y轴是截断的,最好有一个清晰的注释显示这一点。

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

https://stackoverflow.com/questions/62853655

复制
相关文章

相似问题

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