跟著Nature microbiology學(xué)畫(huà)圖~ggplot2散點(diǎn)圖添加分組邊界

今天要模仿的圖片來(lái)自于論文 Core gut microbial communities are maintained by beneficial interactions and strain variability in fish沐祷。期刊是 Nature microbiology

image.png

今天重復(fù)論文中Figure4中的小b這幅圖

image.png

論文中他實(shí)際做的分析是主坐標(biāo)分析(Principal coordinates analysis of samples)袖外,今天的推文內(nèi)容不涉及分析過(guò)程,只討論作圖屏富。用到的示例數(shù)據(jù)是鳶尾花的數(shù)據(jù)集做完主成分分析的結(jié)果脂男。需要示例數(shù)據(jù)的可以在文末留言

數(shù)據(jù)格式
image.png
第一步讀入數(shù)據(jù)
df<-read.csv('irispca.csv',row.names = 1,header=T)
head(df)
image.png
基本的散點(diǎn)圖养叛,根據(jù)group分組來(lái)映射顏色和形狀
library(ggplot2)
ggplot()+
  geom_point(data=df,aes(x=PC1,y=PC2,
                         color=group,shape=group),
             size=2)
image.png
接下來(lái)是一些簡(jiǎn)單的美化
ggplot()+
  geom_point(data=df,aes(x=PC1,y=PC2,
                         color=group,shape=group),
             size=3)+
  theme_bw()+
  theme(panel.background = element_blank(),
        panel.grid = element_blank(),
        legend.title = element_text(hjust=0.5))+
  labs(x="Coordinate 1 (15%)",y="Coordinate 2 (8%)")+
  scale_color_manual(values = c("#008080","#ffa500","#8b008b"))
image.png
接下來(lái)是添加分組邊界

添加分組邊界主要參考了文章
https://chrischizinski.github.io/rstats/vegan-ggplot2/

添加分組邊界用到的是geom_polygon()函數(shù),這里需要借助chull()函數(shù)重新構(gòu)造一份數(shù)據(jù)宰翅。chull()函數(shù)是我第一次接觸弃甥,具體作用我還得在學(xué)習(xí)一下,用如下代碼可以解決問(wèn)題汁讼,但是代碼具體的作用我還得再研究一下

比如給setosa這一組數(shù)據(jù)添加分組邊界

構(gòu)造一份新的數(shù)據(jù) 集

df1<-df[df$group=="setosa",][chull(
  df[df$group=="setosa",c("PC1","PC2")]
),]

畫(huà)圖

ggplot()+
  geom_point(data=df,aes(x=PC1,y=PC2,
                         color=group,shape=group),
             size=3)+
  theme_bw()+
  theme(panel.background = element_blank(),
        panel.grid = element_blank(),
        legend.title = element_text(hjust=0.5))+
  labs(x="Coordinate 1 (15%)",y="Coordinate 2 (8%)")+
  scale_color_manual(values = c("#008080","#ffa500","#8b008b"))+
  geom_polygon(data=df1,aes(x=PC1,y=PC2,group=group),
               color="#008080",fill="#008080",alpha=0.2,size=1)
image.png

按照這個(gè)思路再給另外兩個(gè)品種添加分類(lèi)邊界就好了

library(ggplot2)
table(df$group)
df1<-df[df$group=="setosa",][chull(
  df[df$group=="setosa",c("PC1","PC2")]
),]
df2<-df[df$group=="versicolor",][chull(
  df[df$group=="versicolor",c("PC1","PC2")]
),]
df3<-df[df$group=="virginica",][chull(
  df[df$group=="virginica",c("PC1","PC2")]
),]
ggplot()+
  geom_point(data=df,aes(x=PC1,y=PC2,
                         color=group,shape=group),
             size=3)+
  theme_bw()+
  theme(panel.background = element_blank(),
        panel.grid = element_blank(),
        legend.title = element_text(hjust=0.5))+
  labs(x="Coordinate 1 (15%)",y="Coordinate 2 (8%)")+
  scale_color_manual(values = c("#008080","#ffa500","#8b008b"))+
  geom_polygon(data=df1,aes(x=PC1,y=PC2,group=group),
               color="#008080",fill="#008080",alpha=0.2,size=1)+
  geom_polygon(data=df2,aes(x=PC1,y=PC2,group=group),
               color="#ffa500",fill="#ffa500",alpha=0.2,size=1)+
  geom_polygon(data=df3,aes(x=PC1,y=PC2,group=group),
               color="#8b008b",fill="#8b008b",alpha=0.2,size=1)
image.png

這個(gè)圖相比于論文中的圖還有一個(gè)不一樣的地方是:他畫(huà)坐標(biāo)軸是以(0,0)原點(diǎn)為中心的淆攻,那么在ggplot2里應(yīng)該如何實(shí)現(xiàn)呢?歡迎大家留言討論呀嘿架!

歡迎大家關(guān)注我的公眾號(hào)
小明的數(shù)據(jù)分析筆記本

示例數(shù)據(jù)可以直接留言獲取

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瓶珊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子耸彪,更是在濱河造成了極大的恐慌伞芹,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異唱较,居然都是意外死亡扎唾,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)南缓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)胸遇,“玉大人,你說(shuō)我怎么就攤上這事西乖『疲” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵获雕,是天一觀的道長(zhǎng)薄腻。 經(jīng)常有香客問(wèn)我,道長(zhǎng)届案,這世上最難降的妖魔是什么庵楷? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮楣颠,結(jié)果婚禮上尽纽,老公的妹妹穿的比我還像新娘。我一直安慰自己童漩,他們只是感情好弄贿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著矫膨,像睡著了一般差凹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上侧馅,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天危尿,我揣著相機(jī)與錄音,去河邊找鬼馁痴。 笑死谊娇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的罗晕。 我是一名探鬼主播济欢,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼攀例!你這毒婦竟也來(lái)了船逮?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤粤铭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后杂靶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體梆惯,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡酱鸭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了垛吗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凹髓。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖怯屉,靈堂內(nèi)的尸體忽然破棺而出蔚舀,到底是詐尸還是另有隱情,我是刑警寧澤锨络,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布赌躺,位于F島的核電站,受9級(jí)特大地震影響羡儿,放射性物質(zhì)發(fā)生泄漏礼患。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一掠归、第九天 我趴在偏房一處隱蔽的房頂上張望缅叠。 院中可真熱鬧,春花似錦虏冻、人聲如沸肤粱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)领曼。三九已至,卻和暖如春领铐,著一層夾襖步出監(jiān)牢的瞬間悯森,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工绪撵, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瓢姻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓音诈,卻偏偏與公主長(zhǎng)得像幻碱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子细溅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容