gpt4 book ai didi

javascript - 为什么在维度变量中无法识别 .domain、tickFormat 和 tickValues? (d3,平行坐标)

转载 作者:数据小太阳 更新时间:2023-10-29 04:17:56 28 4
gpt4 key购买 nike

我正在使用 d3.js 创建一个平行坐标图,但我很难按照我的意愿格式化轴标签。

例如,我的轴之一“缓冲液浓度”绘制在对数刻度上,我通过维度变量指定了它,就像这样。

var dimensions = [
...
{
key: "b.Conc",
description: "Buffer Concentration",
type: types["Number"],
scale: d3.scale.log().domain([.1, 100]).range([innerHeight, 0]),
tickValues: [.1,.2,.4,.6,.8,1,2,4,6,8,10,20,40,60],
tickFormat: d3.format(4,d3.format(",d"))
},
...
];

但是,正如您从下面的结果图中看到的那样,我试图指定显示哪些刻度标签(通过 tickValues)并且它们显示为普通数字而不是 10 的幂(通过tickFormat) 不工作。此外,轴不跨越我在 scale 中指定的域;它应该是 [0.1, 100],而不是 [0.1, 60]。

这是为什么?

Section of Parallel Coordinates Plot

代码

可以找到我绘图的 data.csv、index.html 和 style.css 文件 here .在本地打开时,它 [仅] 在 Firefox 中有效。

提前感谢您的帮助,如果我遗漏了一些基本的东西,我深表歉意——我是 d3 的新手。

最佳答案

您似乎忘记了将自定义刻度和刻度值应用于此行中生成的比例:https://gist.github.com/LThorburn/5f2ce7d9328496b5f4c123affee8672f#file-index-html-L189

不确定,但像这样应该会有帮助。

    if (d.tickValues) {
renderAxis.tickValues(d.tickValues);
}

if (d.tickFormat) {
renderAxis.tickFormat(d.tickFormat);
}

关于javascript - 为什么在维度变量中无法识别 .domain、tickFormat 和 tickValues? (d3,平行坐标),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39481566/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com