D3.js 学习笔记2
文章目录
Layout
和它的名字相比,D3 中的 Layout 并不会放任何东西在屏幕上。实际上,Layout 方法和可视化输出并没有直接关系。D3 Layout 会把你交给它的数据转换成更加方便处理的数据。
D3 中包含的全部的 Layout 列表如下:
- Bundle
- Chord
- Cluster
- Force
- Histogram
- Pack
- Partition
- Pie
- Stack
- Tree
- Treemap
每一种 Layout 都会提供一些特别的方法帮助你处理数据。
本文主要介绍一下 Pie Layout
和 Stack Layout
。
Pie Layout
Pie Layout 可以帮助你生成类似饼状图的数据结构。我们先看看它的使用方法。
|
|
如下图所示,你会看到 Pie Layout 会帮助你生成新的数据。
我们来看看如何用这些数据来生成饼状图。
|
|
你可以在下面这个连接里看到效果: http://examples.oreilly.com/0636920026938/chapter_11⁄01_pie.html
Stack Layout
Stack Layout 可以帮你处理如下图所示的类似“叠加柱形图”那样的数据结构。
我们先来看看一组数据:
|
|
要使用 Stack Layout,首先要把我们的数据处理一遍,把相同类型的数据归为一组,例如上面代码所示那样,第一组数据是 apples,第二组数据是 oranges, 第三组数据室 grapes。注意,分组后的数据必须同时包含 x 和 y,其中 x 只是代表他们的 id,y 才是真正的数据。
处理好数据之后我们可以试试调用 stack 方法。
|
|
之后我们可以看到下面的结果:
看到规律了吗?用 stack 方法处理过的数据,都会多了一个 y0
的键。而这个键的值刚好就是前面数据的 y 值之和。利用这个 y0
,我们就可以很方便的创建“叠加柱形图”了。
|
|
结果可以看看下面连接: http://examples.oreilly.com/0636920026938/chapter_11⁄03_stacked_bar.html
什么?你不想要从上往下的柱形图?你想要从下往上的柱形图?
其实要生成从下往上的柱形图很简单,只需要把 yScale 的 range 反过来,然后画图的时候调整一下 y 和 height 属性就好了。
|
|
参考资料
文章作者 scarletsky
上次更新 2019-04-30 (95a170d)