温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

R语言可视化中极坐标变换与衍生图表类型有哪些

发布时间:2021-07-23 09:09:49 来源:亿速云 阅读:117 作者:chen 栏目:大数据

这篇文章主要讲解了“R语言可视化中极坐标变换与衍生图表类型有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“R语言可视化中极坐标变换与衍生图表类型有哪些”吧!

今天这篇内容会比较杂乱一点,因为会讲到ggplot函数中的一大类通过极坐标支持才能呈现出来的图表效果。

ggplot作图背后的图表哲学,没有给予饼图(以及衍生出的圆环图、玫瑰图等放射状图表类型)存在的空间(主要是该包的开发者个人的审美观,比较反感次坐标轴以及功能类型雷同的重复性图层函数,所以它宁可开发出分面图层原理也不愿意增加次坐标轴,不愿意为原本柱形图可以表达的图表形式再单独开发一种功能雷同的饼图函数)。

但是巧的是,在常见的三种坐标形式中,极坐标转换可以非常轻松的将常见的柱形图(条形图)、堆积柱形图通过只一句极坐标函数就神奇的转化为饼图、玫瑰图、圆环图等(不知道是有意为之还是偶然的巧合)。

饼图需要借助柱形图结合极坐标进行转化:

ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar()

R语言可视化中极坐标变换与衍生图表类型有哪些

R语言可视化中极坐标变换与衍生图表类型有哪些

当使用一个因子变量作为横轴,使用分类变量进行填充时,该柱形图变成了单条堆积柱形图。

接下来我们通过以上函数添加极坐标(注意极坐标的设定是如何影响最终的图表形式的)

ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar()+coord_polar(theta = "y")

R语言可视化中极坐标变换与衍生图表类型有哪些

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()

R语言可视化中极坐标变换与衍生图表类型有哪些

从做出的图表以及极坐标函数内的参数我们可以看出来,当参数指定为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")

R语言可视化中极坐标变换与衍生图表类型有哪些

图中其他的元素控制方式与往常的柱形图做法一样:

去掉极坐标轴的轴刻度标签,去掉两个轴标题、更换配色:

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))

R语言可视化中极坐标变换与衍生图表类型有哪些

当有多个序列时:

ggplot(diamonds,aes(cut))+geom_bar(width=1)

R语言可视化中极坐标变换与衍生图表类型有哪些

通过极坐标转换可以实现圆环图、圆条图效果:

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())

R语言可视化中极坐标变换与衍生图表类型有哪些

改变极坐标轴参数设置,可以模拟南丁格尔玫瑰图效果:

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))

R语言可视化中极坐标变换与衍生图表类型有哪些

当然如果你使用的原始柱形图数据中添加了分类序列(也就是堆积柱形图),按照上面的方式可以制作更加复杂的圆环图、堆叠玫瑰图

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))

R语言可视化中极坐标变换与衍生图表类型有哪些

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()

R语言可视化中极坐标变换与衍生图表类型有哪些

尝试着用分面来解决多序列问题:

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语言可视化中极坐标变换与衍生图表类型有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI