我是D3.js的新手,请谅解。
我有一个对数-对数图中的直线方程,Log(Y)= Log(C)+ Log(X),C为常数且由用户定义。
有没有办法仅从方程式中得出D3中的直线?
谢谢。
答案 0 :(得分:1)
不,这不可能完全像您在D3中一样。与其他工具(R,MatLab)相比,D3较少涉及数学计算和可视化,而更多地涉及将数据集绑定到DOM以及处理数据集之间的动画。
也就是说,如果您计算方程的X和Y值,则可以轻松地绘制这些值。我已经看到D3像这样使用了,它带有C
的输入框,然后绘制一个范围。
以下是您的评论:
const C = 1;
const xScale = d3.scaleLinear()
.domain([0, 100])
.range([0, 1000]); // pixels
const yScale = d3.scaleLinear()
.domain([0, 100])
.range([0, 1000]);
const line = d3.line()
.x(d => xScale(d))
.y(d => yScale(Math.log(C) + Math.log(d)));
const values = [0, 50, 100];
d3.selectAll("path")
.datum(values)
.attr("fill", "none")
.attr("stroke", "steelblue")
.attr("d", line);
请注意,方程式中的泵送关键是定义在行生成器中给定y
的情况下如何生成x
值,该行涵盖了这一点:
.y(d => yScale(Math.log(C) + Math.log(d)))