R語言ggplot2畫熱圖添加分組信息的顏色條

image.png

之前有人在公眾號留言問文章開頭這幅圖如何實現(xiàn)鹤竭,下面的B圖是折線圖加柱形圖,相對比較容易實現(xiàn)拷呆,上面的A圖稍微有點復(fù)雜,我想到的辦法是拼圖疫粥,圖A可以看成三個熱圖茬斧,然后加一個堆積柱形圖,最后將四個圖組合到一起梗逮。那就按照這個思路試一下看能不能實現(xiàn)项秉。

最初的想法是左側(cè)的顏色條用堆積柱形圖來實現(xiàn),又看了一遍Y叔公眾號關(guān)于aplot這個包的推文慷彤,發(fā)現(xiàn)他是用geom_tile()函數(shù)實現(xiàn)的娄蔼,仔細(xì)想想還是geom_tile()函數(shù)實現(xiàn)起來比較方便。

首先解決昨天的遺留問題:ggplot2畫圖添加文字內(nèi)容的時候如何添加下劃線

非常感謝下面這位的留言


image.png

文本添加下劃線的小例子

df<-data.frame(A=1:10,
               B=1:10)
library(ggplot2)
ggplot(df,aes(A,B))+
  geom_point(size=5)+
  theme_minimal()+
  ggtitle(expression(underline("Good Good Study, Day Day Up")))+
  labs(x=expression(paste(italic("ABC"),"123")))
image.png

下面進入今天推文的正式內(nèi)容

首先是準(zhǔn)備熱圖的數(shù)據(jù)
image.png

如何畫這個熱圖昨天的推文已經(jīng)介紹過了瞬欧,點擊下方藍(lán)色字可以直達昨天的推文

接下來是準(zhǔn)備分組顏色條的數(shù)據(jù)
image.png
下面是畫這個顏色條
df2<-read.csv("example_data/ggplot2_heatmap_color_bar.csv",header=T)
df2$y<-factor(df2$y,levels = rev(df2$y))
ggplot(df2,aes(x=x,y=y))+
  geom_tile(aes(fill=group))+
  scale_x_continuous(expand = c(0,0))+
  theme(panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.title = element_blank(),
        axis.text.x = element_blank(),
        legend.position = "left",
        legend.title = element_blank())+
  scale_fill_manual(values = c("green","blue","red"))
image.png
將分組顏色條和熱圖拼接到一起
library(aplot)
library(ggplot2)
df<-read.csv("example_data/ggplot2_heatmap.csv",header=T)
df1<-reshape2::melt(df)
df1$value1<-ifelse(is.na(df1$value),0,df1$value)
df1$value1<-as.factor(df1$value1)
df1$A<-factor(df1$A,levels = rev(df$A))
p1<-ggplot(df1,aes(x=variable,y=A))+
  geom_tile(aes(fill=value1),color="black")+
  scale_fill_manual(values = c("white","orangered","red2","red4"))+
  scale_x_discrete(position = "top")+
  theme(panel.background = element_blank(),
        axis.title = element_blank(),
        axis.ticks = element_blank(),
        axis.text.x.top = element_text(angle = 90,
                                       hjust = 0,
                                       vjust= 0.5),
        plot.title = element_text(hjust=0.5),
        legend.position = "none")+
  labs(title = expression(underline("Plant growth and development")))+
  geom_text(aes(label=value1,color=value1))+
  scale_color_manual(values = c("white","black","black","black"))



df2<-read.csv("example_data/ggplot2_heatmap_color_bar.csv",header=T)
df2$y<-factor(df2$y,levels = rev(df2$y))
p2<-ggplot(df2,aes(x=x,y=y))+
  geom_tile(aes(fill=group))+
  scale_x_continuous(expand = c(0,0))+
  theme(panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.title = element_blank(),
        axis.text = element_blank(),
        legend.position = "left",
        legend.title = element_blank())+
  scale_fill_manual(values = c("green","blue","red"))

p1%>%
  insert_left(p2,width = 0.05)
image.png

這里遇到一個問題是如何將右側(cè)的圖例放大左上角去贷屎?用代碼如何實現(xiàn)我暫時還不知道,出圖以后手動編輯吧艘虎!

接下來是模仿文章開頭,拼接三個熱圖
p3<-p1+
  theme(axis.text.y = element_blank())
pdf(file = "123.pdf",width = 12)
p1%>%
  insert_left(p2,width = 0.05)%>%
  insert_right(p3)%>%
  insert_right(p3)
dev.off()

image.png

這樣文章開頭提到的圖就做好了

歡迎大家關(guān)注我的公眾號
小明的數(shù)據(jù)分析筆記本

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末咒吐,一起剝皮案震驚了整個濱河市野建,隨后出現(xiàn)的幾起案子属划,更是在濱河造成了極大的恐慌,老刑警劉巖候生,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件同眯,死亡現(xiàn)場離奇詭異,居然都是意外死亡唯鸭,警方通過查閱死者的電腦和手機须蜗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來目溉,“玉大人明肮,你說我怎么就攤上這事$愿叮” “怎么了柿估?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長陷猫。 經(jīng)常有香客問我秫舌,道長,這世上最難降的妖魔是什么绣檬? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任足陨,我火速辦了婚禮,結(jié)果婚禮上娇未,老公的妹妹穿的比我還像新娘墨缘。我一直安慰自己,他們只是感情好忘蟹,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布飒房。 她就那樣靜靜地躺著,像睡著了一般媚值。 火紅的嫁衣襯著肌膚如雪狠毯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天褥芒,我揣著相機與錄音嚼松,去河邊找鬼。 笑死锰扶,一個胖子當(dāng)著我的面吹牛献酗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坷牛,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼罕偎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了京闰?” 一聲冷哼從身側(cè)響起颜及,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤甩苛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后俏站,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體讯蒲,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年肄扎,在試婚紗的時候發(fā)現(xiàn)自己被綠了墨林。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡犯祠,死狀恐怖旭等,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情雷则,我是刑警寧澤辆雾,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站月劈,受9級特大地震影響度迂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜猜揪,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一惭墓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧而姐,春花似錦腊凶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至政鼠,卻和暖如春风瘦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背公般。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工万搔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人官帘。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓瞬雹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親刽虹。 傳聞我的和親對象是個殘疾皇子酗捌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容