javascript - D3:X 轴值错误
问题描述
我是 d3.js 的新手,我遇到了问题。我用 React.js 制作了一个组件,我在同一页面中重复使用。这个组件绘制了一个散点图,我第一次调用这个组件时正确显示了两个轴(左侧)。但是,我第二次称它为 x 轴显示错误的值,但 y 轴显示正确的值(正确的值)。
我传递给右侧图形组件的值是:
x: 5.56 y: 0.00
x: 5.56 y: 33.33
x: 44.44 y: 0.00
x: 0.00 y: 0.00
x: 22.22 y: 33.33
x: 0.00 y: 0.00
x: 0.00 y: 33.33
x: 22.22 y: 0.00
你怎么看,x 最小值是 0.00,x 最大值是 44.44,但是我们在 x 轴上得到了像 min -1.0 和最高的是 5.5
我定义轴刻度的代码是:
setScales(data){
let xRange = [this.state.margin.left, this.state.width - this.state.margin.right];
let yRange = [this.state.margin.top, this.state.height - this.state.margin.top - this.state.margin.bottom]; // flip order because y-axis origin is upper LEFT
let xScale = d3.scaleLinear()
.domain([ d3.min(data, function(d) { return d.value_x; }) - 1,
d3.max(data, function(d) { return d.value_x; }) + 1 ])
.range(xRange);
let yScale = d3.scaleLinear()
.domain([ d3.max(data, function(d) { return d.value_y; }) + 1,
d3.min(data, function(d) { return d.value_y; }) - 1 ])
.range(yRange);
return {"xScale" : xScale, "yScale" : yScale, "xRange" : xRange, "yRange" : yRange};
}
那么,我做错了什么?发生了什么事?
解决方案
推荐阅读
- java - 用java编写一个程序来检查给定字符串中是否存在子字符串而不使用数组
- mysql - MYSQL LEFT JOIN 未显示所有数据
- c++ - 在截断过程中乘以 2 个数字的问题
- python - 如何将刻度标签从左脊椎上移开
- python - 将数据从 excel 工作表 (openpyxl) 传输到数据库表 (dbf)
- automation - BigQuery - 从 Google Cloud Storage 传输自动化 - 覆盖表
- javascript - Vue.js - 如何在其父组件的 DOM 元素之外创建子组件的 DOM 元素
- bash - 有没有办法在我的本地计算机上的两个 aws 实例之间进行 scp?
- jquery - 带有 jQuery 的 wallaby.js
- python - 从具有结构化模式的列表构建字典