首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在amchart XY图表上显示精确的数值轴,而不会自动舍入小数?

如何在amchart XY图表上显示精确的数值轴,而不会自动舍入小数?
EN

Stack Overflow用户
提问于 2019-11-07 17:06:57
回答 1查看 510关注 0票数 1

我已经摆弄这个amchart4代码几天了,但仍然不能让它精确地显示Y轴数据,它总是倾向于向下或向上舍入

我已经尝试过maxprecision选项、numberformat选项和许多其他选项,但仍然无法正确解析,数据是通过json加载的,但对于jsfiddle,我在javascript中创建了类似的temp数据。

代码语言:javascript
运行
复制
chart.data = 
[{"date":"2019-11-07","value":0.0051},
{"date":"2019-11-06","value":0.0063},
{"date":"2019-11-05","value":0.0059},
{"date":"2019-11-04","value":0.0071},
{"date":"2019-11-03","value":0.0101},
{"date":"2019-11-02","value":0.0113},
{"date":"2019-11-01","value":0.0101}];

因此,在Y轴上,它不会将值显示为0.0101,而是向上舍入为0.01

下面是一个运行在jsfiddle上的示例代码,它清楚地说明了这个问题

https://jsfiddle.net/6gck9yz8/

EN

回答 1

Stack Overflow用户

发布于 2019-11-10 19:14:04

这是个ValueAxis。它显示了抽象值比例,网格的值适合特定的值范围,并且不一定与您的实际数据点相对应。

可以通过减少轴渲染器的minGridDistance来增加粒度。例如:

代码语言:javascript
运行
复制
valueAxis.renderer.minGridDistance = 10;

More about axis grid density

这将使网格/标签更频繁,因此更精确,但它不能保证这些对应于实际的数据点。

如果您需要绝对放置网格/标签的精确值,则需要为这些值中的每个值添加“轴范围”。

More info about axis ranges as guides

您可以通过迭代所有数据并为每个值放置一个轴范围来自动执行此操作:

代码语言:javascript
运行
复制
for(var i = 0; i < chart.data.length; i++) {
  var range = valueAxis.axisRanges.create();
  range.value = chart.data[i].value;
  range.label.text = chart.data[i].value + "";
  range.grid.stroke = am4core.color("#396478");
  range.grid.strokeOpacity = 0.5;
}

这是你的小提琴的updated version

如果你运行这个,你就会明白为什么把网格/标签放在精确值上不是一个好主意;)

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

https://stackoverflow.com/questions/58745274

复制
相关文章

相似问题

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