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

本篇文章為大家展示了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怎樣畫帶有空白格的熱圖,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創新互聯行業資訊頻道。

網頁名稱:R語言ggplot2怎樣畫帶有空白格的熱圖
本文URL:http://m.kartarina.com/article24/geceje.html

成都網站建設公司_創新互聯,為您提供云服務器網站收錄移動網站建設外貿網站建設動態網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

微信小程序開發
主站蜘蛛池模板: 久久人妻av无码中文专区| 中文无码成人免费视频在线观看| 免费无码一区二区三区蜜桃 | 久久久久亚洲AV无码麻豆| 亚洲av日韩av无码| 麻豆亚洲AV成人无码久久精品| 国产成人无码一二三区视频| 亚洲另类无码专区首页| 中文字幕久久精品无码| 无码成人AAAAA毛片| 91嫩草国产在线无码观看| 久久久久久无码国产精品中文字幕 | 97精品人妻系列无码人妻| 无码任你躁久久久久久老妇| 亚洲av无码一区二区三区天堂古代| 国产V片在线播放免费无码| 中日韩亚洲人成无码网站| 亚洲精品无码午夜福利中文字幕 | 中国少妇无码专区| 粉嫩大学生无套内射无码卡视频| YW尤物AV无码国产在线观看| 亚洲中文无码av永久| 亚洲av永久无码精品漫画| 精品无码久久久久久久动漫 | 久久久久亚洲av无码专区蜜芽| 亚洲人成无码网WWW| 成人免费无码大片A毛片抽搐| 一本一道VS无码中文字幕| 亚洲国产精品无码成人片久久| 中文字幕人妻三级中文无码视频| 国产爆乳无码视频在线观看3| 久久人午夜亚洲精品无码区 | 亚洲精品无码MV在线观看| 一本之道高清无码视频| 夜夜精品无码一区二区三区| 亚洲国产成人精品无码久久久久久综合| 在线无码视频观看草草视频| 无码无套少妇毛多18PXXXX| 无码熟妇αⅴ人妻又粗又大| 亚洲人成无码久久电影网站| 中文字幕久久精品无码|