R笔记4:ggplot绘制商务图表--玫瑰图
标签:
佛学杂谈 |
文/ExcelPro图表博客(转载请保留出处)
我们说Excel有难度的图表,可以考虑ggplot2是否更方便,本帖的例子就是用ggplot做玫瑰图。
Excel做玫瑰图有一定难度,可以使用雷达图或圆环图来构建,我的博客上曾有多个帖子讨论这个,见
1、已被sohu隐藏
2、已被sohu隐藏
3、圆环图做南丁格尔玫瑰图:http://blog.sina.com.cn/s/blog_6bc5205e0101jk0r.html
但在ggplot2中做这个图表类型却是非常的简单方便。
#转换为长表
library(reshape2)
rose_long <-
melt(rose,id.vars="取值",variable.name="维度",value.name="count")
#如果直接做堆积柱形图是这样的
library(ggplot2)
p <- ggplot(rose_long,aes(x=维度,
y=count, fill=取值))+ geom_bar(stat="identity",
color="black")
p
#使用极坐标,柱形图被像折扇子一样折叠为玫瑰图了,真是1秒钟变玫瑰图!太方便了,想起当时在Excel费老大劲折腾,不堪回首中......
p + coord_polar()
#这个内置的颜色不太好,使用更好的颜色:
p + coord_polar() +
scale_fill_brewer(palette="Blues")
p + coord_polar() +
scale_fill_brewer(palette="Blues") + theme_bw()
http://s2/mw690/001YmwsCgy6T3LuAmxr91&690
#现在是比较重要的一步优化,由于中心部分太小,挤在一起很难以看清,如何实现象例图中的中间留空?尝试把y轴最小值设置为-0.4看看:
#现在是比较重要的一步优化,由于中心部分太小,挤在一起很难以看清,如何实现象例图中的中间留空?尝试把y轴最小值设置为-0.4看看:
p + coord_polar() +
scale_fill_brewer(palette="Blues") + theme_bw() + ylim(-0.4,1)
#在中心空白处画个圆圈作为玫瑰图的x轴起点线,以及在外圈画个圆,使图表看起来更圆润。
p + coord_polar() +
scale_fill_brewer(palette="Blues") + theme_bw()
+
p + coord_polar() +
scale_fill_brewer(palette="Blues") + theme_bw()
+
现在玫瑰图基本已经完成,后续可导入AI继续编辑和添加各种标签。
回头看看,如果不使用极坐标,把图表还原为普通的柱形图,就是如下的样子。这其实比玫瑰图更好比较。不过,大众读者可能更喜欢看起来新颖、高级的样式吧,也无可厚非。
ExcelPro图表博客,专注于简单实用、专业有效的商务图表沟通方法。转载请注明出处。
最新商业图表案例教程见第1季、第2季,属于中高级程度,适合对图表品质要求高的朋友。提供xlsx源文件+pdf图文教程+在线视频演示3合1课程。
--------------------------------------
刘万祥
微博:@刘万祥ExcelPro
微信:iamExcelPro
博客:ExcelPro.blog.sohu.com
邮箱:ExcelPro2008@gmail.com

加载中…