拿R来画画(六):很漂亮的Cleveland点图
文章目录
- 简单粗暴堆点
- 各点有序上升下降
- 对样本分组绘图
这种图主要是针对一一对应的关系,简洁明了,图形的可读性很强,因为条形图在空间上是二维的,不容易直观建立一一对应的变量关联。
简单粗暴堆点
library(gcookbook)
library(ggplot2)
tophit <- tophitters2001[1:25,]
head(tophit)
id | first | last | name | year | stint | team | lg | g | ab | ... | sb | cs | bb | so | ibb | hbp | sh | sf | gidp | avg |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<fct> | <chr> | <chr> | <chr> | <int> | <int> | <fct> | <fct> | <int> | <int> | ... | <int> | <int> | <int> | <int> | <int> | <int> | <int> | <int> | <int> | <dbl> |
walkela01 | Larry | Walker | Larry Walker | 2001 | 1 | COL | NL | 142 | 497 | ... | 14 | 5 | 82 | 103 | 6 | 14 | 0 | 8 | 9 | 0.3501 |
suzukic01 | Ichiro | Suzuki | Ichiro Suzuki | 2001 | 1 | SEA | AL | 157 | 692 | ... | 56 | 14 | 30 | 53 | 10 | 8 | 4 | 4 | 3 | 0.3497 |
giambja01 | Jason | Giambi | Jason Giambi | 2001 | 1 | OAK | AL | 154 | 520 | ... | 2 | 0 | 129 | 83 | 24 | 13 | 0 | 9 | 17 | 0.3423 |
alomaro01 | Roberto | Alomar | Roberto Alomar | 2001 | 1 | CLE | AL | 157 | 575 | ... | 30 | 6 | 80 | 71 | 5 | 4 | 9 | 9 | 9 | 0.3357 |
heltoto01 | Todd | Helton | Todd Helton | 2001 | 1 | COL | NL | 159 | 587 | ... | 7 | 5 | 98 | 104 | 15 | 5 | 1 | 5 | 14 | 0.3356 |
aloumo01 | Moises | Alou | Moises Alou | 2001 | 1 | HOU | NL | 136 | 513 | ... | 5 | 1 | 57 | 57 | 14 | 3 | 0 | 8 | 18 | 0.3314 |
ggplot(tophit, aes(x = avg, y = name)) + geom_point()
各点有序上升下降
观察一下上面的图可以发现,点上升得很凌乱,没有规律。因为这里Y轴是按字母序排列的,我们使用reorder来重排一下。reorder会首先将输入的第一个参数转化为因子类型,然后根据第二个参数对其进行排序。
根据上表在theme中调整主题,这里去掉背景的网格。
ggplot(tophit, aes(x = avg, y = reorder(name, avg))) +
geom_point(size = 3) +
# 与默认主题theme_gray相对,背景空白
theme_bw() +
theme(panel.grid.major.x = element_blank(),panel.grid.minor.x = element_blank(), panel.grid.major.y = element_line(colour = 'lightblue', linetype = 'dashed'))
颠倒一下顺序
ggplot(tophit, aes(x = avg, y = reorder(name, -avg))) +
geom_point(size = 3) +
# 与默认主题theme_gray相对,背景空白
theme_bw() +
theme(panel.grid.major.x = element_blank(),panel.grid.minor.x = element_blank(), panel.grid.major.y = element_line(colour = 'lightblue', linetype = 'dashed'))
也可以直接X轴Y轴对调,此时引入更多的美化操作,比如X轴的文本倾斜,以及更细致地调整点和线条。
ggplot(tophit, aes(x = reorder(name, avg), y = avg)) +
geom_point(size = 4, fill = 'lightblue', color = 'lightblue') +
# 与默认主题theme_gray相对,背景空白
theme_bw() +
theme(axis.text.x = element_text(angle = 60,hjust = 1),panel.grid.major.y = element_blank(),panel.grid.minor.y = element_blank(), panel.grid.major.x = element_line(colour = 'orange', linetype = 'dashed', size = 0.8)) +
#设置线段到数据点出结束
geom_segment(aes(xend=name),yend=0,colour='lightblue', size = 1.5)
对样本分组绘图
根据lg和avg对name进行排序,并将其转换为因子水平的level
nameorder <- tophit$name[order(tophit$lg, tophit$avg)]
tophit$name <- factor(tophit$name, levels = nameorder)
ggplot(tophit, aes(x = avg, y =name)) +
geom_segment(aes(yend=name, colour = lg),xend=0, size = 1.5) +
# 按颜色分组
geom_point(size = 3, aes(colour = lg)) +
scale_color_brewer(palette = "Set1", limits = c("NL", "AL")) +
# 与默认主题theme_gray相对,背景空白
theme_bw() +
theme(panel.grid.major.x = element_blank(),panel.grid.minor.x = element_blank(), panel.grid.major.y = element_blank(), # 将图标移到图的里面去legend.position=c(1, 0.55), legend.justification =c(1, 0.5))
分面图
ggplot(tophit, aes(x = avg, y =name)) +
geom_segment(aes(yend=name),xend=0, size = 1.5, colour = 'grey50') +
# 按颜色分组
geom_point(size = 3, aes(colour = lg)) +
# 取消guide分组
scale_color_brewer(palette = "Set1", limits = c("NL", "AL"), guide = FALSE) +
# 与默认主题theme_gray相对,背景空白
theme_bw() +
theme(panel.grid.major.x = element_blank(),panel.grid.minor.x = element_blank(), panel.grid.major.y = element_blank())+# 分面图facet_grid(lg~., scales = "free_y", space = "free_y")
拿R来画画(六):很漂亮的Cleveland点图相关推荐
- 很漂亮的字体闪烁效果
很漂亮的字体闪烁效果,我们可以用在一个项目的spalsh界面,进入应用后弹出这个界面,闪烁完毕后跳入主界面,比纯粹的设置背景图片的splash好看炫酷很多. 通过自定义view重写onDraw的方法和 ...
- 《包青天》中的《鸳鸯蝴蝶梦》单元,剧中有一个很漂亮的女子叫“离垢”
<包青天>中的<鸳鸯蝴蝶梦>单元,剧中有一个很漂亮的女子叫"沈离垢".剧中人物通常叫她"离垢","离垢"二字的发音非 ...
- 中国六个漂亮的古镇风景名胜区网站欣赏
古镇,一般指有着百年以上历史的,供集中居住的建筑群.中国历史悠久,广阔土地上有着很多悠久历史.文化底蕴深厚的古镇.今天这篇文章收集了六个漂亮的古镇风景名胜区网站,这些网站的共同特点是都具有复古风格,以 ...
- 归纳推理测试没做完_看她家新房,保洁做完还没家具就很漂亮,墙面刷灰色耐看又耐脏...
每个人的需求与需求,每个人心目中的家都不一样,但我们都可能把家装出想要的效果,让家人,让自己以后生活会更舒适,待在屋里能感受到诗远方.通过别人家的装修,可以借鉴别人家一些相对比较好的经验,在装修过程中 ...
- 微软人物立方——效果还很漂亮的
以前听说过微软人物立方,人物关系图的搜索,今天不知怎么在看陶喆的<11号产房>纪录片的时候看到朱敬然,觉得这人有点意思,不知怎么就用到人物立方来搜索一下了. 感觉这东东对名人,娱乐界的人生 ...
- 这个女人,败得很漂亮!看后有感!
他们结婚三年.有个孩子,是大家公认的模范夫妻,脸红吵架都没有过.她以为,所谓的天长地久,不过如此. 那天,她无意发现他的一条短信:"昨晚分开后,我一直想你,你想我吗?"他正洗澡,哗 ...
- 看聊天记录都学不会C语言?太菜了吧》(16)我一直以为校花很漂亮,直到我叫了她一声...
好消息2020年4月13日晚7.30我在CSDN开播,等你来聊天 预约连接:https://live.csdn.net/room/A757291228/MJWK0Gem 本系列文章将会以通俗易懂的对话 ...
- 从右边开始放_幸福的生活,从入住新房开始,效果很漂亮,忍不住给大家晒晒全屋...
经济的快速发展,人民生活水平也随之得到了很好的提升,生活质量也有所提高.对于现在很多年轻人来说,结婚总会拥有一套属于自己的房子,真的很让人羡慕.有句话是这样说来的:幸福的生活,从入住新房开始.每个人买 ...
- 一些很漂亮的字符图片
一些很漂亮的字符图片,别人收集的,转过来看看 █田█田█ . █田█田█ . █田█田█ . █田█田█ ∨ █田█田█ /█/ ←各位"兄弟"姐妹 █田█田█ ● █田█ ...
最新文章
- VS2010 MFC中改变static字体颜色、大小、背景颜色(自定义类),及手动关联变量的方法...
- 皮一皮:有钱人的世界咱不懂...
- Hangry 饥饿成怒 2016-10-03
- 【springboot中使用aop的具体步骤和示例】
- hdu 4302 STL multiset
- java高级知识点_JAVA高级阶段知识点汇总
- django批量修改table_django-formset实现数据表的批量操作
- 真美 | 你破坏Java代码的样子,真美!
- 如何将Excel表批量赋值到ArcGIS属性表
- telnet不是内部命令
- JavaScript:屏蔽浏览器右键点击事件
- linux 下载文件 rz,linux rz/sz上传下载文件命令
- 分享一个超酷创建互动文档的Javascript类库 - tangle
- 跟我一起玩转A870省电内核、超频内核
- 中断linux命令快捷键_Linux常用快捷键和基本命令
- STM32/CPU总线的由来和地址映射概念
- UE4-(光照)光照贴图
- 2013年杰森·斯坦森动作《蜂鸟》720p.BD中英双字幕
- MongoDb配置文件中参数及其作用
- .Net中的frame框架