R語言與醫(yī)學(xué)統(tǒng)計圖形-【28】ggplot2擴展包ggrepel氮发、ggsci、gganimate冗懦、ggpubr

ggplot2繪圖系統(tǒng)——擴展包ggrepel爽冕、ggsci、gganimate披蕉、ggpubr等

部分?jǐn)U展包可在CRAN直接下載颈畸,有些需借助devtools包從Github下載。

1. ggrepel包

用來在圖上添加文字和標(biāo)簽没讲,相比geom_text和geom_label函數(shù)眯娱,能將重疊的標(biāo)簽分開,并添加指示短橫線食零。

library(ggrepel)
ggplot(mtcars,aes(wt,mpg))+geom_point(color='red')+
  geom_text_repel(aes(label=rownames(mtcars)),
                  segment.color = 'blue')+
  theme_classic(base_size = 16)
image.png

2. ggsci包

肖楠作品困乒,針對科研人員的包,滿足不同雜志風(fēng)格的配色贰谣,包括十幾種配色方案娜搂。

基本配色函數(shù):


image.png

Lancet配色示例。

library(ggsci)
p1 <- ggplot(subset(diamonds,carat>=2.2),aes(x=table,y=price,color=cut))+
  geom_point(alpha=0.7)+
  geom_smooth(method = 'loess',alpha=0.05,size=1,span=1)+
  theme_bw()
a <- p1+scale_color_lancet()

p2 <- ggplot(subset(diamonds,carat>2.2&depth>55&depth<70),
             aes(x=depth,fill=cut))+
  geom_histogram(color='black',binwidth = 1,position = 'dodge')+
  theme_bw()
b <- p2+scale_fill_lancet()

grid.arrange(a,b,ncol=2)
image.png

JCO配色風(fēng)格示例吱抚。

c <- p1+scale_color_jco()
d <- p2+scale_fill_jco()
grid.arrange(c,d,ncol=2)
image.png

3. gganimate包

繪制動態(tài)圖(將靜態(tài)的png百宇、jpeg圖片轉(zhuǎn)化成動態(tài)的gif文件)。

使用gganimate前秘豹,需在本機上先安裝ImageMagick軟件(專用于圖片編輯携御、合成、轉(zhuǎn)換及其他處理的軟件)既绕。

library(gganimate)
date <- as.character(economics$date)
economics$year <- substr(date,1,4) #提取年份
p <- ggplot(economics,aes(date,uempmed,size=unempoly,
                          frame=year))+#必須參數(shù)啄刹,展示每一幀名稱
  geom_point()
gganimate(p)
aq <- airquality
aq$date <- as.Date(paste(1973,aq$Month,aq$Day,sep = '-'))
p2 <- ggplot(aq,aes(date,Temp,frame=Month,
                    cumulative=TRUE))+ #疊加顯示,而非單獨顯示每一幀
  geom_line()
gganimate(p2,title_frame=FALSE)

4. ggpubr包

快速生成論文發(fā)表級的統(tǒng)計圖形凄贩。

兩兩比較盒形圖

library(ggpubr)
data('ToothGrowth')
df <- ToothGrowth
p <- ggboxplot(df,
               x='dose',
               y='len',
               color = 'dose',#顏色映射變量
               palette = c('#00AFBB','#E7B800','#FC4E07'), #盒形顏色取值
               add = 'jitter', #點擾動
               shape='dose' #擾動點形狀
               )
p
#代碼風(fēng)格更偏向于基礎(chǔ)包誓军,注意傳入的變量都是字符串形式


#######統(tǒng)計學(xué)差異繪圖

#定義哪些組兩兩比較
my_comparisons <- list(c('0.5','1'),c('1','2'),c('0.5','2'))
#添加組間比較p值
b <- p+stat_compare_means(comparisons = my_comparisons)+
  stat_compare_means(label.y = 50) #p值位置

grid.arrange(p,b,ncol=2)

image.png

小提琴圖

ggviolin(df,
         x='dose',
         y='len',
         fill = 'dose',
         palette = c('#00AFBB','#E7B800','#FC4E07'), 
         add = 'boxplot', #添加盒形圖
         add.params = list(fill='white'))+
         #定義后添加圖形的屬性,這里定義盒形圖填充色
  stat_compare_means(comparisons = my_comparisons,
                     label = 'p.signif') +#以顯著程度展示疲扎,而非p
  stat_compare_means(label.y=50) #總體比較p值位置
image.png

條形圖和滑珠圖
滑珠圖是條形圖一種變形昵时。
示例比較。

mtcars$name <- rownames(mtcars)
mtcars$cyl <- as.factor(mtcars$cyl)

#條形圖
a <- ggbarplot(mtcars,x='name',y='mpg',
          fill = 'cyl',
          color='white',
          palette = 'lancet', #配色風(fēng)格椒丧,JCO
          sort.val = 'desc', #對y變量降序
          sort.by.groups = FALSE, #各組不分開排列
          x.text.angle=90
          )

#滑珠圖
b <- ggdotchart(mtcars,x='name',y='mpg',
                color = 'cyl',
                palette = 'jco',
                sorting = 'ascending', #升序排列
                add = 'segments', #添加線段壹甥,使之成為滑珠圖
                ggtheme = theme_pubr() #圖形整體風(fēng)格
                )
grid.arrange(a,b,ncol=2)
image.png

改善后的滑珠圖。

ggdotchart(mtcars,x='name',y='mpg',
           color = 'cyl',
           palette = c('#00AFBB','#E7B800','#FC4E07'),
           sorting = 'descending', 
           add = 'segments', 
           rotate = TRUE,
           group = 'cyl', #各亞組分開
           dot.size = 6, #散點大小
           label = round(mtcars$mpg),#mpg值作為散點標(biāo)簽
           font.label = list(color='white',size=9,vjust=0.5),
           #定義散點其他屬性
           ggtheme = theme_pubr() 
)
image.png

5. 其他擴展包

  • ggfortify包
  • ggforce包
    對ggplot2幾何對象進行了擴展壶熏,加入arcs句柠、curves等幾何對象,更方便繪制餅圖、弧形等溯职。
  • ggradar包
    雷達圖/蜘蛛圖管怠。
  • ggnetwork包
    社交網(wǎng)絡(luò)數(shù)據(jù)可視化。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缸榄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子祝拯,更是在濱河造成了極大的恐慌甚带,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件佳头,死亡現(xiàn)場離奇詭異鹰贵,居然都是意外死亡,警方通過查閱死者的電腦和手機康嘉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門碉输,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人亭珍,你說我怎么就攤上這事敷钾。” “怎么了肄梨?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵阻荒,是天一觀的道長。 經(jīng)常有香客問我众羡,道長侨赡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任粱侣,我火速辦了婚禮羊壹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘齐婴。我一直安慰自己油猫,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布尔店。 她就那樣靜靜地躺著眨攘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嚣州。 梳的紋絲不亂的頭發(fā)上鲫售,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音该肴,去河邊找鬼情竹。 笑死,一個胖子當(dāng)著我的面吹牛匀哄,可吹牛的內(nèi)容都是我干的秦效。 我是一名探鬼主播雏蛮,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阱州!你這毒婦竟也來了挑秉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤苔货,失蹤者是張志新(化名)和其女友劉穎犀概,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夜惭,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡姻灶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了诈茧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片产喉。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖敢会,靈堂內(nèi)的尸體忽然破棺而出曾沈,到底是詐尸還是另有隱情,我是刑警寧澤走触,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布晦譬,位于F島的核電站,受9級特大地震影響互广,放射性物質(zhì)發(fā)生泄漏敛腌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一惫皱、第九天 我趴在偏房一處隱蔽的房頂上張望像樊。 院中可真熱鬧,春花似錦旅敷、人聲如沸生棍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涂滴。三九已至,卻和暖如春晴音,著一層夾襖步出監(jiān)牢的瞬間柔纵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工锤躁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留搁料,地道東北人。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像郭计,于是被迫代替她去往敵國和親霸琴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354