螺旋图是一种沿着阿基米德螺旋线绘制图形,从螺旋的中心向外螺旋式延伸。
螺旋图比较多变,可以使用条形、线或点几何对象。适用于显示较大的数据集或周期性数据。
使用 ggplot2 绘制螺旋线,本质上还是要自己先对数据进行整理,如下图
4 条线分别代表 2015-2018 年份,x 轴代表的是月份,颜色表示的是比特币的价格。
我们需要以梯度的方式,各分组之间具有相同的斜率,且两条相邻的线条之间的前端与末端之间的高度是一样的
进行极坐标系变换之后,如下图
螺旋线
将线条换成点图
如果要使用条形图,则会更麻烦一些,如果直接使用 geom_tile
看起来被割裂了一样,我们看看在笛卡尔坐标系下的样子
看起来我们应该将每个条形的右边坐标上提,也就是绘制底边平行的平行四边形
首先,我们需要计算出四边形的四个顶点,然后将右边的两个顶点向上平移,同时为条形图添加了随机的高度,用来模拟比特币价格在该月份中的波动范围
构建完数据之后,我们看看其在直角坐标系下的样子
在这里,设置 group 参数非常重要。我们要每个月份作为一组,绘制一个平行四边形,所以需要根据年份与月份两列来进行分组
然后,将它旋起来
螺旋柱状图
换个配色
螺旋柱状图
如果要绘制螺旋热图的话,可以将条形的高度设置为 12
螺旋热图
也可以绘制螺旋面积图
首先构造数据
绘制图形
螺旋面积图
如果想要添加渐变色,可以将 geom_ribbon 替换为 geom_linerange
渐变螺旋面积图
这种颜色也挺好看的
渐变螺旋面积图