ggplot2如何畫散點圖拼接密度圖,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站設計、網(wǎng)站建設、觀山湖網(wǎng)絡推廣、微信小程序、觀山湖網(wǎng)絡營銷、觀山湖企業(yè)策劃、觀山湖品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供觀山湖建站搭建服務,24小時服務熱線:028-86922220,官方網(wǎng)址:m.newbst.com
前幾天有一個讀者在公眾號留言問上面這幅圖應該如何實現(xiàn),我想到一個辦法是利用ggplot2分別畫散點圖和密度圖,然后利用aplot包來拼圖,aplot包是ggtree的作者新開發(fā)的一個包,非常重要的一個作用就是解決拼圖的時候坐標軸對齊的問題。這個aplot包的用法大家可以在微信搜索里直接搜aplot就可以直接找到原作者寫的推文的介紹,而且這個公眾號經(jīng)常推送R語言的學習內(nèi)容,非常好,作者是真正的大神級別的人物了。
好了下面就開始介紹具體的實現(xiàn)過程
生成兩列符合正態(tài)分布的數(shù)據(jù),然后組合成一個數(shù)據(jù)框
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()
按照Y軸的范圍填充三個顏色,比如大于3填充一個,小于-3填充另外一種,-3到3中間的填充另外一種
給數(shù)據(jù)添加一列新的用來映射顏色
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()
接下來是添加輔助線
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")
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())
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)
看完上述內(nèi)容,你們掌握ggplot2如何畫散點圖拼接密度圖的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
標題名稱:ggplot2如何畫散點圖拼接密度圖
URL地址:http://m.newbst.com/article14/gsegde.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站改版、App設計、品牌網(wǎng)站建設、微信公眾號、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)