蝴蝶图是柱状图的一种,形似蝴蝶,上下或者左右都有柱子延伸,常常用来展示评分或者是两组不同的数据之间的对比。比如我们常见的人口在分男女之后对比不同年龄段的分部就可以使用蝴蝶图进行对比。下面我们将会介绍2种不同的蝴蝶图的画法。
首先我们需要加载需要使用的R语言包,代码如下:
接下来,我们首先展示第一种比较简单的蝴蝶图。先使用下面的代码制作一个假数据:
我们假设搜集到一些问卷的结果,针对三个问题,ques1~ques3,有100个人对每个问题在4种程度评价中选择了一个作为结果,数据的样子如下:
接下来我们需要计算对于每个问题,4种程度的选择比例,代码如下:
计算后的结果如下:
为了实现蝴蝶图,我们想让非常讨厌和比较讨厌的柱子朝下,比较喜欢和非常喜欢的柱子朝上,可以通过下面的代码进行操作:
处理后的结果如下:
细心的读者会发现,在通过fct_relevel对level进行重新排序的时候,并不是按照正常的顺序,‘非常喜欢’排在了‘比较喜欢’的前面。这主要是为了最后的图里面,柱子上的评价排序从下到上是按照正常顺序排列的。感兴趣的读者可以尝试在这里换一下‘非常喜欢’和‘比较喜欢’的位置,看一下最后的图就会明白了。
现在,我们可以使用data3绘制蝴蝶图了,代码如下,结果如图:
我们也可以翻转坐标轴,只需要添加coord_flip()即可,代码如下,结果如图:
下面我们介绍第二种蝴蝶图,首先我们需要制作一个假的人口数据,代码如下:
接下来,我们需要计算分性别的各年龄段人口总数,代码如下:
这里data2可以被用来画图了,但是我们要分别绘制男女的人口分布柱状图,代码和结果如下:
以上就是两种回执蝴蝶图的方法,虽然例子都比较简单,但是核心思路大致就这两种。rmarkdown文件可以通过下面的链接下载:
链接:https://pan.baidu.com/s/1GuCVkGK8f0LWb4ykyelD8w?pwd=iacv
提取码:iacv