介绍
假如我们在制作柱状图时,不能确定数据的变化范围,或者数据变化过大,就可以使用比例尺。
比例尺,顾名思义,就是把一组数据映射到一个集合中。
具体操作
- 首先我们先说线性映射,即两个集合都是连续的数
预处理
1 | var dataset = [233, 433, 996]; |
映射
1 | scaleLinear(300) //此时这个函数就会直接返回映射后的结果 |
- 此外还有一种非线性映射, 即把两个不是连续的集合之间建立映射关系
1
2
3
4
5
6
7
8
9
10
11
12
13
14<body>
<script>
var index = [0,1,2,3,4];
var color = ["刻晴","优菈","甘雨","胡桃","莫娜"];
var scaleOrdinal = d3.scaleOrdinal()
.domain(index) // 原始数据
.range(color); // 要映射到的集合
document.write("scaleOrdinal(1)输出:"+scaleOrdinal(1));
d3.select("body").append("br");
document.write("scaleOrdinal(2)输出:"+scaleOrdinal(2));
d3.select("body").append("br");
document.write("scaleOrdinal(4)输出:"+scaleOrdinal(4));
</script>
</body>
坐标轴
1 | //为坐标轴定义一个线性比例尺 |
想要换成y轴也很简单,只需把axisBottom换成axisLeft(数字在坐标轴左侧),或者axisRight(数字在坐标轴右侧)
与此同时,想要改变数字递增的方向也很简单,只需把range中两个数字调换一下位置即可。
示例
1 | <body> |
希望这篇博客对你有所帮助~
- 本文作者: 水蓝络合物
- 本文链接: https://miku39393939.github.io/2021/05/25/d3-scaleLinear/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!