Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3:当天平经过一个轴时,它做什么?_Javascript_D3.js_Scale_Axes - Fatal编程技术网

Javascript D3:当天平经过一个轴时,它做什么?

Javascript D3:当天平经过一个轴时,它做什么?,javascript,d3.js,scale,axes,Javascript,D3.js,Scale,Axes,在d3中,如果要创建轴,可以执行以下操作: var xAxis = d3.svg.axis() .scale(x) 其中x是一个比例函数。我知道x域定义了刻度的起始值和结束值。我很难理解x的范围如何改变结果轴。在轴的上下文中,域映射到什么。思考创建任何数据集的可视化表示必须做什么。必须将每个数据点(例如100万美元)转换为屏幕上的一个点。如果您的数据最小值为$0,最大值为$1000000,则您的域为0到1000000。现在,要在计算机屏幕上显示数据,必须将每个数据点(例如$25)转换为若干像素

在d3中,如果要创建轴,可以执行以下操作:

var xAxis = d3.svg.axis()
.scale(x)

其中x是一个比例函数。我知道x域定义了刻度的起始值和结束值。我很难理解x的范围如何改变结果轴。在轴的上下文中,域映射到什么。

思考创建任何数据集的可视化表示必须做什么。必须将每个数据点(例如100万美元)转换为屏幕上的一个点。如果您的数据最小值为$0,最大值为$1000000,则您的域为0到1000000。现在,要在计算机屏幕上显示数据,必须将每个数据点(例如$25)转换为若干像素。您可以尝试一个简单的1对1线性转换(屏幕上25个转换为25个像素),在这种情况下,您的范围将与您的域=0到1000000相同。但这需要一个血腥的大屏幕。更可能的情况是,我们知道了希望图形在屏幕上显示的大小,因此我们相应地设置了范围(例如,0到600)

d3 scale函数将数据集中的每个数据点转换为范围内的相应值。这使它能够显示在屏幕上。上一个示例是一个简单的转换,因此d3.scale()函数对您没有多大帮助,但需要花费一些时间将数据点转换为可视化表示,您将很快发现scale函数为您做了大量工作的某些情况


在轴的特定情况下,比例函数的作用完全相同。它正在对每个“记号”进行转换(转换为像素),并将它们放在屏幕上。

范围决定了轴的长度和记号及其值所在的域。@Larskothoff轴的长度是什么意思?我试过调整范围的第一个值,看起来它移动了起始位置,范围的第二个值移动了结束位置,但我不确定这些值应该代表什么。这些值是像素。范围的开始和结束之间的差异是以像素为单位的长度。