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

溫馨提示×

溫馨提示×

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

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

ggplot2如何畫散點圖拼接密度圖

發布時間:2022-01-15 17:21:04 來源:億速云 閱讀:321 作者:柒染 欄目:大數據

ggplot2如何畫散點圖拼接密度圖,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。


ggplot2如何畫散點圖拼接密度圖  
image.png

前幾天有一個讀者在公眾號留言問上面這幅圖應該如何實現,我想到一個辦法是利用ggplot2分別畫散點圖和密度圖,然后利用aplot包來拼圖,aplot包是ggtree的作者新開發的一個包,非常重要的一個作用就是解決拼圖的時候坐標軸對齊的問題。這個aplot包的用法大家可以在微信搜索里直接搜aplot就可以直接找到原作者寫的推文的介紹,而且這個公眾號經常推送R語言的學習內容,非常好,作者是真正的大神級別的人物了。

 

aplot包:讓你畫出更復雜的圖

好了下面就開始介紹具體的實現過程

 首先是模擬數據

生成兩列符合正態分布的數據,然后組合成一個數據框

x<-rnorm(500,0,1)
y<-rnorm(500,0,2)
df<-data.frame(x=x,y=y)
head(df)
 

先做一個簡單的散點圖

library(ggplot2)ggplot(df,aes(x=x,y=y))+  geom_point()
 
ggplot2如何畫散點圖拼接密度圖  
image.png

按照Y軸的范圍填充三個顏色,比如大于3填充一個,小于-3填充另外一種,-3到3中間的填充另外一種

給數據添加一列新的用來映射顏色

df$color<-ifelse(df$y>3,"A",
                 ifelse(df$y<(-3),"B","D"))
head(df)
 

畫圖

ggplot(df,aes(x,y))+
  geom_point(aes(color=color))+
  scale_color_manual(values=c("green","blue","grey"))+
  theme_bw()
 
ggplot2如何畫散點圖拼接密度圖  
image.png

接下來是添加輔助線

ggplot(df,aes(x,y))+
  geom_point(aes(color=color))+
  scale_color_manual(values=c("green","blue","grey"))+
  theme_bw()+
  geom_hline(yintercept = -3,lty="dashed")+
  geom_hline(yintercept = 3,lty="dashed")+
  geom_vline(xintercept = -2,lty="dashed")
 
ggplot2如何畫散點圖拼接密度圖  
image.png
 接下來是密度圖
ggplot(df,aes(x))+
  geom_density(fill="grey",alpha=0.5)+
  scale_y_continuous(expand = c(0,0))+
  theme_minimal()+
  theme(axis.title = element_blank(),
        axis.text = element_blank(),
        axis.ticks = element_blank())
 
ggplot2如何畫散點圖拼接密度圖  
image.png

y軸的密度分布也是這樣畫,下面就不重復了

 接下來是拼圖
library(ggplot2)
library(aplot)
p1<-ggplot(df,aes(x,y))+
  geom_point(aes(color=color))+
  scale_color_manual(values=c("green","blue","grey"))+
  theme_bw()+
  geom_hline(yintercept = -3,lty="dashed")+
  geom_hline(yintercept = 3,lty="dashed")+
  geom_vline(xintercept = -2,lty="dashed")

p2<-ggplot(df,aes(x))+
  geom_density(fill="grey",alpha=0.5)+
  scale_y_continuous(expand = c(0,0))+
  theme_minimal()+
  theme(axis.title = element_blank(),
        axis.text = element_blank(),
        axis.ticks = element_blank())

p3<-ggplot(df,aes(y))+
  geom_density(fill="grey",alpha=0.5)+
  scale_y_continuous(expand = c(0,0))+
  theme_minimal()+
  theme(axis.title = element_blank(),
        axis.text = element_blank(),
        axis.ticks = element_blank())+
  coord_flip()
p1%>%
  insert_top(p2,height = 0.5)%>%
  insert_right(p3,0.5)
 
ggplot2如何畫散點圖拼接密度圖  
image.png


看完上述內容,你們掌握ggplot2如何畫散點圖拼接密度圖的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

五莲县| 镇巴县| 凤城市| 吉林市| 彰化市| 棋牌| 泸州市| 杂多县| 平武县| 石城县| 新巴尔虎左旗| 泽普县| 横峰县| 白水县| 渝中区| 运城市| 商水县| 区。| 珲春市| 和平县| 曲靖市| 高雄县| 化隆| 翁牛特旗| 惠来县| 丁青县| 宁陕县| 海南省| 丰城市| 微山县| 新巴尔虎左旗| 浏阳市| 丰都县| 宁阳县| 博野县| 西安市| 宁国市| 阿瓦提县| 蓝山县| 赤壁市| 新河县|