您好,登錄后才能下訂單哦!
本篇文章為大家展示了R語言ggplot2怎樣畫帶有空白格的熱圖,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
之前有人在公眾號留言問文章開頭這幅圖如何實現,下面的B圖是折線圖加柱形圖,相對比較容易實現,上面的A圖稍微有點復雜,我想到的辦法是拼圖,圖A可以看成三個熱圖,然后加一個堆積柱形圖,最后將四個圖組合到一起。那就按照這個思路試一下看能不能實現。
這個熱圖和常規的還稍微有點不太一樣,可以簡單的理解為帶有缺失值的熱圖,缺失值是空白格,其他值分別填充顏色。
那我們就按照這個思路來構造數據
將數據集按照以上格式整理好,存儲在csv文件中。
df<-read.csv("example_data/ggplot2_heatmap.csv",header=T)
df1<-reshape2::melt(df)
library(ggplot2)
ggplot(df1,aes(x=variable,y=A))+
geom_tile(aes(fill=value),color="black")+
theme(panel.background = element_blank())
df1$value1<-ifelse(is.na(df1$value),0,df1$value)
df1$value1<-as.factor(df1$value1)
summary(df1)
ggplot(df1,aes(x=variable,y=A))+
geom_tile(aes(fill=value1),color="black")+
scale_fill_manual(values = c("white","red","red2","red4"))+
theme(panel.background = element_blank())
這樣是不是和文章開頭提到的圖有點像了。
df1$A<-factor(df1$A,levels = rev(df$A))
ggplot(df1,aes(x=variable,y=A))+
geom_tile(aes(fill=value1),color="black")+
scale_fill_manual(values = c("white","red","red2","red4"))+
theme(panel.background = element_blank())
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 = "Plant growth and development")
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 = "Plant growth and development")+
geom_text(aes(label=value1,color=value1))+
scale_color_manual(values = c("white","black","black","black"))
上述內容就是R語言ggplot2怎樣畫帶有空白格的熱圖,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。