干貨分享 | 給散點圖鑲上“小花邊”-技術前沿-資訊-生物在線

干貨分享 | 給散點圖鑲上“小花邊”

作者:上海阿趣生物科技有限公司 2022-06-30T14:28 (訪問量:6002)

散點圖,是一種常見的展示2組及以上連續變量關系的可視化方式之一。本文主要介紹如何給普通的散點圖“鑲邊”——添加邊際圖。我們知道R作圖思路就是一層一層的疊加上去,同理可得繪制一個如下所示的圖,我們也應該是先定位X、Y軸,再繪制一個散點圖,最后疊加上一個邊際圖。

01.涉及的R包

1.ggplot2

最常用也是最萬能的繪圖R包。

2.ggExtra

用于給散點圖添加邊際圖。

3.hexbin

hexbin包的hexbin函數應用于數據量太大、且有數據重疊、普通散點圖可視化效果變差的情況。


02.開始畫圖

1.載入R包

install.packages("ggExtra")
install.packages("hexbin")
library(ggExtra)
library(hexbin)
library(ggplot2)

2.繪制散點圖

本文數據以R自帶的diamonds數據為例,散點圖的基本語法如下,數據集、X軸、Y軸,最后是散點層。

p <- ggplot(data=diamonds, mapping = aes(x = carat,y = price)) +
geom_point(shape=19 ,alpha = .5,size=1.5)

一個最基礎不加任何修飾的散點圖就繪制好了,接下來要做的工作就是思考如何美化它。當數據量特別大,散點都堆疊在一起,很多區域很難辨識,我們可以考慮使用hexbin函數繪制高密度散點圖。hexbin函數將二元變量的封箱放到六邊形單元格中,且通過圖例顏色標定每一個區域數據點的數量顏色越深則散點密度越大。

p <- ggplot(data=diamonds,mapping = aes(x = carat,y = price)) +
geom_point(shape=19 ,alpha = .01,size=0.5)+
stat_binhex()

調整圖片的細節


p <- ggplot(data=diamonds,mapping = aes(x = carat,y = price)) +
geom_point(shape=19 ,alpha = .01,size=0.5)+
stat_binhex()+
scale_fill_gradient(low = "lightblue", high = "red",limits =c(0,6000)) + #設置映射顏色和圖例尺度
theme_bw() +
theme(
legend.position = "left", #調整圖例的位置
axis.title = element_text( family = "sans",size = 17,face = "bold",color = "gray25"),#設置X、Y軸標題字體、大小以及顏色
axis.text = element_text( family = "sans",size = 15,face = "bold"), #設置X、Y軸標簽字體、大小以及顏色
title = element_text( family = " sans ",size = 20,face = "bold"), #設置圖片標題的字體、大小以及顏色
plot.title = element_text(margin = margin(t = 10, b = 10)),#控制標題與圖表之間的距離
axis.title.x = element_text(margin = margin(t = 15),family = "sans"),
axis.title.y = element_text(margin = margin(r = 15) ,family = "sans"),#調整X、Y軸標題距離繪圖區的距離
legend.title = element_blank(), #去除圖例的標題
panel.border = element_rect( linetype = "solid", size = 2,color = "gray50") #繪圖區外框顏色、線型以及粗細
) +
labs(title="Add marginal to scatter",hjust=0.5) + xlab("carat") + yl
ab("price") #添加標題

3.添加邊際圖

邊際圖是疊加在散點圖上的,它有多個類型可供選擇。

參數解讀:

p:之前繪制好的散點圖

type:添加的邊際圖類型

density:密度曲線

histogram:直方圖

boxpot:箱線圖

violin:小提琴圖

densigram:密度圖與直方圖的結合

margins:邊際圖添加在哪一方向

both:X、Y軸都添加

X:只添加X軸

Y:只添加Y軸

size:主圖與邊際圖的比例關系

fill:填充顏色

color:描邊顏色


p1 <- ggMarginal(p, type ="densigram", margins = "both", fill="#A7B9D7", color="steelblue")

一副完整的散點圖加邊際圖就繪制好了。邊際圖也可以根據需要嘗試各樣的類型:

只添加X軸的密度圖

ggMarginal( p, type = "density", margins = "x", fill = "#A7B9D7", color="steelblue")

只添加Y軸的小提琴圖

ggMarginal( p, type = "violin", margins = "y", fill = "red", color="steelblue" )
上海阿趣生物科技有限公司 商家主頁

地 址: 嘉定區新培路51號焦點夢想園5層

聯系人: 高小姐

電 話: 400-664-9912

傳 真:

Email:marketing@biotree.cn

相關咨詢

Circulation (IF=38.7)|上海兒童醫學中心張浩/劉一為聯合南京鼓樓醫院王東進團隊破解肥胖心衰患者LVAD療效困局,胰島素增敏劑點亮心肌恢復新希望! (2026-04-25T00:00 瀏覽數:8068)

J. Adv. Res. (IF=13)|血漿蛋白質組學賦能:暴發性心肌炎精準診斷與靶向治療新突破 (暫無發布時間 瀏覽數:7513)

NP(IF=8.1)|西北農林研究團隊解碼黑枸杞“高品質密碼”:光響應轉錄調控網絡如何驅動類黃酮合成與藥用活性? (暫無發布時間 瀏覽數:7537)

LWT(IF=6.6)|四川大學研究團隊通過同位素標記代謝流與脂質組學的“夢幻聯動”,帶你看清酵母的耐鹽策略 (暫無發布時間 瀏覽數:8231)

破微量極限,啟代謝新程|微量NGM 3 Pro,以微量樣本,全景解碼生命代謝 (暫無發布時間 瀏覽數:8206)

JEP (IF=5.4)|福建中醫藥大學研究團隊:多組學揭秘丹瓜方調控GLUD1改善糖尿病代謝機制 (暫無發布時間 瀏覽數:9443)

Food Chem.(IF=9.8)|南農陳暄教授研究團隊多組學揭秘:云南“金花茶”的風味煉金術—匍匐散囊菌如何點“茶”成“香”? (暫無發布時間 瀏覽數:9701)

J.Agric.Food Chem.(IF=6.2)|中國熱科院胡偉/丁澤紅團隊突破性成果!解碼木薯塊根3類蛋白修飾圖譜,解鎖淀粉積累與抗逆調控密碼 (暫無發布時間 瀏覽數:9896)

nat commun(IF=15.7)|北大白玉教授團隊突破靜態局限:動態單細胞代謝組學揭秘腫瘤-巨噬細胞互作新機制 (暫無發布時間 瀏覽數:11449)

nat.commun.(IF=15.7)|復旦大學附屬中山醫院詹成團隊:靶向多胺代謝提升KRAS靶向藥療效 (暫無發布時間 瀏覽數:12702)

ADVERTISEMENT