中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言ggplot2怎樣畫帶有空白格的熱圖

發布時間:2021-11-22 15:12:56 來源:億速云 閱讀:497 作者:柒染 欄目:大數據

本篇文章為大家展示了R語言ggplot2怎樣畫帶有空白格的熱圖,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

R語言ggplot2怎樣畫帶有空白格的熱圖  
image.png

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

 

首先畫熱圖

這個熱圖和常規的還稍微有點不太一樣,可以簡單的理解為帶有缺失值的熱圖,缺失值是空白格,其他值分別填充顏色。

那我們就按照這個思路來構造數據

R語言ggplot2怎樣畫帶有空白格的熱圖  
image.png

將數據集按照以上格式整理好,存儲在csv文件中。

 首先是讀入數據
df<-read.csv("example_data/ggplot2_heatmap.csv",header=T)
   以上數據是寬格式,借助reshape2這個包中的melt函數將寬格式轉變為長格式
df1<-reshape2::melt(df)
   ggplot2畫熱圖
library(ggplot2)
ggplot(df1,aes(x=variable,y=A))+
  geom_tile(aes(fill=value),color="black")+
  theme(panel.background = element_blank())
 
R語言ggplot2怎樣畫帶有空白格的熱圖  
image.png
 這個地方遇到一個問題是缺失值如何給他填充為白色,我想到的辦法是給缺失值賦值為0,然后將0,1,2,3離散化處理,然后分別分配顏色
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())
 
R語言ggplot2怎樣畫帶有空白格的熱圖  
image.png

這樣是不是和文章開頭提到的圖有點像了。

 

接下來是美化

 調整一下y軸的的順序
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())
 
R語言ggplot2怎樣畫帶有空白格的熱圖  
image.png
 將X軸放到頂部
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")
 
R語言ggplot2怎樣畫帶有空白格的熱圖  
image.png
 標題的下滑線如何用代碼添加我暫時還不知道,直接出圖后手動編輯吧。上面的圖還忘記添加文字標簽了,下面補上
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怎樣畫帶有空白格的熱圖  

上述內容就是R語言ggplot2怎樣畫帶有空白格的熱圖,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

朝阳县| 庆元县| 金门县| 阿拉尔市| 汶川县| 定南县| 和林格尔县| 临安市| 鞍山市| 凯里市| 延寿县| 汨罗市| 灵璧县| 西林县| 银川市| 泽库县| 宁城县| 嵊州市| 金山区| 青岛市| 广州市| 凌云县| 五莲县| 文登市| 天长市| 嘉定区| 东港市| 平遥县| 舟曲县| 蓝山县| 明光市| 潼关县| 汝城县| 凤城市| 定西市| 曲阜市| 石首市| 特克斯县| 宜城市| 裕民县| 集贤县|