R语言绘图(ggplot2、ggpubr)从入门到精通05--柱状图美化之分组修改 - 草稿

本系列课程要求大家有一定的R语言基础,对于完全零基础的同学,建议去听一下师兄的《生信必备技巧之——R语言基础教程》。本课程将从最基本的绘图开始讲解,深入浅出的带大家理解和运用强大而灵活的ggplot2包。内容包括如何利用ggplot2绘制散点图、线图、柱状图、添加注解、修改坐标轴和图例等。

本次课程所用的配套书籍是:《R Graphic Cookbooks》

除了以上的基本图形外,师兄还会给大家讲解箱线图、提琴图、热图、火山图、气泡图、桑基图、PCA图等各种常用的生信图形的绘制,还不赶紧加入收藏夹,跟着师兄慢慢学起来吧!

第二章:柱状图深入探究

  • 分组柱状图
#######################
## 分组柱状图
library(gcookbook) # 包内含有需要的数据;
cabbage_exp <- cabbage_exp
ggplot(cabbage_exp,aes(Date, Weight, fill = Cultivar)) + 
  geom_bar(position = "dodge",stat = "identity",color = "black")

ggplot(cabbage_exp,aes(Date, Weight, fill = Cultivar)) + 
  geom_bar(stat = "identity")  # 默认的position = "stack";

# 此外,除了fill可以指定分组变量,color、linestyle也可以指定;
ggplot(cabbage_exp,aes(Date, Weight, color = Cultivar)) + 
  geom_bar(position = "dodge",stat = "identity")

# 请注意,如果类别变量的组合有任何缺失,则该栏将缺失,相邻的栏将扩展以填充该空间。
ce = cabbage_exp[1:5,]

ggplot(ce,aes(Date, Weight, fill = Cultivar)) + 
  geom_bar(position = "dodge",stat = "identity",color = "black") +
  scale_fill_brewer(palette = "Pastel1")
# 实际情况下确实存在有一种类别没有对应的y值,此时可以使用NA或者0代替;
ce_NA <- cabbage_exp
ce_NA$Weight[6] <- 0

ggplot(ce_NA,aes(Date, Weight, fill = Cultivar)) + 
  geom_bar(position = "dodge",stat = "identity",color = "black") +
  scale_fill_brewer(palette = "Pastel1")
  • 修改颜色技巧补充:
#######################
## 修改颜色的技巧:

library(gcookbook) 
upc <-subset(uspopchange, rank(Change)>40) 
upc

ggplot(upc, aes(x=Abb, y=Change, fill=Region)) + geom_bar(stat="identity")

# 此示例还使用reorder()函数,将条形按其高度进行排序; 
ggplot(upc, aes(x=reorder(Abb, Change), y=Change, fill = Region)) + 
  geom_bar(stat="identity", color="black") + 
  scale_fill_manual(values=c("#669933", "#FFCC66")) + 
  xlab("State")
#######################
## 正负两极不同的着色:
csub <- subset(climate, Source == "Berkeley" & Year >= 1900) 

# 思路:颜色根据正负数来填充?怎么识别正负数呢?
# 只能新建一个字段:该字段描述了正和负;
# 指定fill为该字段;
csub$pos <- csub$Anomaly10y >= 0 
csub

ggplot(csub, aes(x=Year, y=Anomaly10y, fill=pos))+
  geom_bar(stat="identity", position="identity")

# 使用scale_fill_manual()修改颜色;guide = False参数去掉图例
ggplot(csub, aes(x=Year, y=Anomaly10y, fill=pos)) + 
  geom_bar(stat="identity", position="identity",color="black", size=0.25)+ 
  scale_fill_manual(values=c("#CCEEFF", "#FFDDDD"), guide=FALSE)

往期文章

  1. R语言绘图(ggplot2、ggpurb)从入门到精通01--课程介绍
  2. R语言绘图(ggplot2、ggpurb)从入门到精通02--柱状图和直方图
  3. R语言绘图(ggplot2、ggpurb)从入门到精通03--箱式图和函数图像
  4. R语言绘图(ggplot2、ggpurb)从入门到精通04--柱状图美化之调色
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,348评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,122评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,936评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,427评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,467评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,785评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,931评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,696评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,141评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,483评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,625评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,291评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,892评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,741评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,492评论 2 348

推荐阅读更多精彩内容