楼主: sssyunsheng
13955 11

[程序分享] 用R做弦状图(circlize)和华夫格图(waffle) [推广有奖]

  • 2关注
  • 47粉丝

已卖:107份资源

博士生

52%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
4.4708
学术水平
47 点
热心指数
49 点
信用等级
43 点
经验
5127 点
帖子
201
精华
0
在线时间
306 小时
注册时间
2012-2-21
最后登录
2025-9-22

楼主
sssyunsheng 在职认证  发表于 2015-6-27 15:46:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

更多相关数据和代码链接微信索取,下面有二维码

首先我们要整理数据和安装必须包,这里数据来源于维基。做图重要的一点不是执着于各类参数,首先应该明白这种图要求的数据格式是什么样,是怎么摆放数据的。

  1. library(circlize)
  2. library(waffle)
  3. mat<-matrix(c(1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  4. 0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  5. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,
  6. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4),nrow=4,ncol=85,byrow=TRUE)
  7. colnames(mat)<-c('斐语','加泰罗尼亚语','丹麦语','荷兰语','法语','加利西亚语','意大利语','挪威语',
  8. '葡萄牙语','罗马尼亚语','西班牙','瑞典语','德语','印尼语','爪哇语',
  9. '牙买加语','马来语','斯瓦希里语','阿尔巴尼亚语','阿姆哈拉语','亚美尼亚语','阿塞拜疆语','白俄罗斯语',
  10. '孟加拉语','波斯尼亚语','保加利亚语','缅甸语','宿务语','克罗地亚语','捷克语','宗喀语','爱沙尼亚语','芬兰语',
  11. '格鲁吉亚语','希腊语','古吉拉特语','希伯来语','印地语','匈牙利语','冰岛语','伊洛果语','爱尔兰语','埃纳德语','哈萨克语',
  12. '库尔德语','吉尔吉斯语','高棉语','老挝语','拉脱维亚语','立陶宛语','马其顿语','马拉地语','蒙语','尼泊尔语','普什图语','波斯语',
  13. '波兰语','旁遮普语','俄语','赛尔维亚语','僧加罗语','斯洛伐克','斯洛维尼亚语','索马里语','菲律宾语','泰米尔语','巴利语','泰卢固语','德顿语','泰语','土耳其语',
  14. '土库曼语','乌克兰语','乌尔都语','乌兹别克语','越南语','科萨语','祖鲁语','阿拉伯语','粤语','日语','韩语','普通话','台语','吴语')
  15. rownames(mat)<-c('575-600 小时','750-900 小时','1100 小时','2200 小时+')
  16. 数据摆放好以后我就可以做图了。
  17. matp2<-prop.table(mat,margin=2)
  18. ##绘制弦状图
  19. chordDiagram(matp2,annotationTrack="grid",preAllocateTracks=list(track.height = 0.3))
  20. ##更改坐标轴
  21. circos.trackPlotRegion(track.index=1, panel.fun=function(x,y) {
  22.   xlim = get.cell.meta.data("xlim")
  23.   ylim = get.cell.meta.data("ylim")
  24.   sector.name=get.cell.meta.data("sector.index")
  25.   circos.text(mean(xlim), ylim[1], sector.name,facing="clockwise",
  26.               niceFacing=TRUE,adj=c(0,0.5))},bg.border=NA)
复制代码

语言学习1.png

我们的弦状图就绘制好了,下面我们需要绘制华夫格图,首先先设定自己常用的颜色,有几个分类就要设置几种颜色,当然你也可以使用默认色

  1. cols <-c(rgb(red =0, green =137, blue =130, max =255),
  2. rgb(red =236, green =161, blue =136, max =255),
  3. rgb(red =109, green =187, blue =191, max =255),
  4. rgb(red =196, green =189, blue =151, max =255),
  5. rgb(red =127, green =127, blue =127, max =255),
  6. rgb(red =250, green =192, blue =144, max =255))
  7. languages<-c('汉语 (大约 1,190,000,000 人)'=17,'西班牙语 (大约 420,000,000 人)'=6,'英语 (大约 350,000,000 人)'=5,'印地语 (大约 280,000,000 人)'=4,'阿拉伯语 (大约 210,000,000 人)'=3,'其他语言 (大约 4,550,000,000 人)'=65)
复制代码

下面我们需要绘图了,先将要绘制的分类赋值,然后直接绘图即可

  1. waffle(languages,rows=8,size=4,colors=cols,xlab='') +
  2.   ggtitle("")
复制代码

华夫1.png

相关数据与代码链接:http://pan.baidu.com/s/1c0AnhW8  密码:微信索取

关于我们,关注理性与文艺,用数据创作内容性的精致阅读,这里是数据分析挖掘人员与文艺青年的集结地,不做培训,不做鼓吹,只踏踏实实的做一个又一个数据驱动的文章,并设计机器人减轻数据分析的负担,无论你感兴趣还是想参与都可以关注,请加微信公众号

qrcode_for_gh_89f96c48034b_430.jpg


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:circlize waffle CIRC CIR 弦状图 华夫格 circlize

qrcode_for_gh_89f96c48034b_860.jpg (106.87 KB)

qrcode_for_gh_89f96c48034b_860.jpg

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

本帖被以下文库推荐

沙发
sssyunsheng 在职认证  发表于 2015-6-27 20:45:15
没人喜欢这样图么?

藤椅
RiverSide 发表于 2015-6-28 08:31:58
我喜欢

板凳
sssyunsheng 在职认证  发表于 2015-6-28 17:15:03
RiverSide 发表于 2015-6-28 08:31
我喜欢
非常感谢

报纸
512002855 发表于 2015-6-30 10:42:05
赞一个,

地板
welsonlee 发表于 2015-7-1 10:16:55
顶一个,加了楼主的qq,楼主的blog资料很多,学习ing

7
明显饭桶 发表于 2016-8-4 20:47:20
MAC系统下该弦状图的中文无法显示怎么解决,求助

8
日新少年 学生认证  发表于 2016-8-5 11:18:51
感谢分享

9
gethc 发表于 2016-8-5 19:10:18
这个图挺有意思的

10
shengzhouwang 发表于 2016-8-5 19:37:38 来自手机
不错

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 18:59