R语言可视化中极坐标变换与衍生图表类型有哪些
这篇文章主要讲解了“R语言可视化中极坐标变换与衍生图表类型有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“R语言可视化中极坐标变换与衍生图表类型有哪些”吧!
创新互联建站-专业网站定制、快速模板网站建设、高性价比福鼎网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式福鼎网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖福鼎地区。费用合理售后完善,十年实体公司更值得信赖。
今天这篇内容会比较杂乱一点,因为会讲到ggplot函数中的一大类通过极坐标支持才能呈现出来的图表效果。
ggplot作图背后的图表哲学,没有给予饼图(以及衍生出的圆环图、玫瑰图等放射状图表类型)存在的空间(主要是该包的开发者个人的审美观,比较反感次坐标轴以及功能类型雷同的重复性图层函数,所以它宁可开发出分面图层原理也不愿意增加次坐标轴,不愿意为原本柱形图可以表达的图表形式再单独开发一种功能雷同的饼图函数)。
但是巧的是,在常见的三种坐标形式中,极坐标转换可以非常轻松的将常见的柱形图(条形图)、堆积柱形图通过只一句极坐标函数就神奇的转化为饼图、玫瑰图、圆环图等(不知道是有意为之还是偶然的巧合)。
饼图需要借助柱形图结合极坐标进行转化:
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar()
当使用一个因子变量作为横轴,使用分类变量进行填充时,该柱形图变成了单条堆积柱形图。
接下来我们通过以上函数添加极坐标(注意极坐标的设定是如何影响最终的图表形式的)
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar()+coord_polar(theta = "y")
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar()+coord_polar(theta = "x")
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar()+coord_polar()
从做出的图表以及极坐标函数内的参数我们可以看出来,当参数指定为x时,最终柱形图的x轴会被指定为极坐标的x轴(圆周),而柱形图的y轴则会成为极坐标的y轴(半径)。当指定为y轴时,柱形图的y轴为成为极坐标的x轴(圆周),柱形图的x轴会成为极坐标的y轴(半径)。
同时极坐标状态下,饼图的半径是由柱形图柱形图宽度决定的,以上图表中圆心有个空白,如果我们将柱形图柱形图宽度定义为1,则会成为正圆。
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar(width=1)+coord_polar(theta = "y")
图中其他的元素控制方式与往常的柱形图做法一样:
去掉极坐标轴的轴刻度标签,去掉两个轴标题、更换配色:
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar(width=1)+coord_polar(theta = "y",start=0)+theme(panel.grid = element_blank(),panel.background = element_blank(),axis.text = element_blank(),axis.ticks = element_blank(),axis.title = element_blank())+scale_fill_brewer(palette="Blues")+guides(fill=guide_legend(reverse=TRUE,title=NULL))
当有多个序列时:
ggplot(diamonds,aes(cut))+geom_bar(width=1)
通过极坐标转换可以实现圆环图、圆条图效果:
ggplot(diamonds,aes(cut))+geom_bar(width=1,fill="steelblue",colour="white")+coord_polar(theta = "y",start=0)+theme(panel.grid = element_blank(),panel.background = element_blank(),axis.text.x = element_blank(),axis.title = element_blank())
改变极坐标轴参数设置,可以模拟南丁格尔玫瑰图效果:
ggplot(diamonds,aes(cut))+geom_bar(width=0.95,fill="#3182BD")+coord_polar(theta = "x",start=0)+theme(panel.grid = element_blank(),panel.background = element_blank(),axis.text.y = element_blank(),axis.ticks= element_blank(),axis.title = element_blank())+ylim(c(-3000,22500))
当然如果你使用的原始柱形图数据中添加了分类序列(也就是堆积柱形图),按照上面的方式可以制作更加复杂的圆环图、堆叠玫瑰图
ggplot(diamonds,aes(x=color,fill=cut))+geom_bar(width=0.95,colour="white")+coord_polar(theta = "y",start=0)+theme(panel.grid = element_blank(),panel.background = element_blank(),axis.text.x = element_blank(),axis.title = element_blank())+scale_fill_brewer(palette="Blues")+guides(fill=guide_legend(reverse=TRUE,title=NULL))
ggplot(diamonds,aes(x=color,fill=cut))+geom_bar(width=0.95,colour="white")+coord_polar(theta = "x",start=0)+theme(axis.text.y = element_blank(),axis.title = element_blank())+scale_fill_brewer(palette="Blues")+guides(fill=guide_legend(reverse=TRUE,title=NULL))+ylim(c(-2000,12000))+theme_bw()
尝试着用分面来解决多序列问题:
ggplot(diamonds,aes(x=color,fill=cut))+geom_bar(width=0.95,colour="white")+coord_polar(theta = "x",start=0)+theme(axis.text.y = element_blank(),axis.title = element_blank())+scale_fill_brewer(palette="Blues")+guides(fill=guide_legend(reverse=TRUE,title=NULL))+ylim(c(-2000,6000))+theme_bw()+facet_grid(.~cut)
感谢各位的阅读,以上就是“R语言可视化中极坐标变换与衍生图表类型有哪些”的内容了,经过本文的学习后,相信大家对R语言可视化中极坐标变换与衍生图表类型有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
文章名称:R语言可视化中极坐标变换与衍生图表类型有哪些
浏览路径:http://scyanting.com/article/pjhcec.html