R語言繪圖:實用腦科學(xué)數(shù)據(jù)可視化包

文章來源于微信公眾號(茗創(chuàng)科技),歡迎有興趣的朋友搜索關(guān)注。


導(dǎo)讀

本文整理了R語言繪圖中使用頻率較高的程序包,每個程序包都附載相應(yīng)的參考來源鏈接(鏈接里有實現(xiàn)繪圖的腳本)和下載鏈接。另:茗創(chuàng)科技為大家提供免會員極速下載服務(wù),需要相應(yīng)程序包的小伙伴可以私信茗創(chuàng)科技周翊工程師,微信號MCKJ-zhouyi或17373158786。

gganimate:在R中繪制動態(tài)圖

gganimate在CRAN上可通過install.packages('gganimate')來安裝。如果要安裝開發(fā)版本,可以直接使用devtools從github安裝:

# install.packages('devtools')

devtools::install_github('thomasp85/gganimate')

示例1 及其代碼

library(ggplot2)

library(gganimate)

ggplot(mtcars, aes(factor(cyl), mpg)) +

? geom_boxplot() +

? # Here comes the gganimate code

? transition_states(

? ? gear,

? ? transition_length = 2,

? ? state_length = 1

? ) +

? enter_fade() +

? exit_shrink() +

? ease_aes('sine-in-out')

示例2及其代碼

library(gapminder)

ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) +

? geom_point(alpha = 0.7, show.legend = FALSE) +

? scale_colour_manual(values = country_colors) +

? scale_size(range = c(2, 12)) +

? scale_x_log10() +

? facet_wrap(~continent) +

? # Here comes the gganimate specific bits

? labs(title = 'Year: {frame_time}', x = 'GDP per capita', y = 'life expectancy') +

? transition_time(year) +

? ease_aes('linear')

IPWboxplot:如何繪制缺失值的箱型圖

IPW.boxplot函數(shù)使用IPW分位數(shù)繪制適用于丟失數(shù)據(jù)修改后的箱線圖。應(yīng)用該函數(shù)會得到一個統(tǒng)計概括列表。默認(rèn)情況下,使用該函數(shù)得到經(jīng)過調(diào)整的箱線圖和通過逆概率加權(quán)計算的統(tǒng)計數(shù)據(jù)。

ggplot2:用圖形語法繪制精美數(shù)據(jù)圖的程序包

ggplot2的核心理念是將繪圖與數(shù)據(jù)分離,數(shù)據(jù)相關(guān)的繪圖與數(shù)據(jù)無關(guān)的繪圖分離,是按圖層作圖,有利于結(jié)構(gòu)化思維,同時它保有命令式作圖的調(diào)整函數(shù),使其更具靈活性,繪制出來的圖形美觀,同時避免繁瑣細(xì)節(jié)。

更多創(chuàng)新思路,可以查看ggplot2中豐富的擴(kuò)展生態(tài)系統(tǒng)。也能給自己提供更多繪圖靈感。

Corrplot:繪制相關(guān)矩陣可視化圖

Corrplot使用起來非常方便,并提供了可視化方法、圖形布局、顏色、文本標(biāo)簽等豐富的繪圖選項。此外,還提供p值和置信區(qū)間,以幫助我們確定相關(guān)性的統(tǒng)計顯著性。

handyplots:快速繪制散點圖、Q-Q圖、箱型圖、殘差圖、置信區(qū)間等

以下是handyplots程序包的使用手冊,搭配作圖過程使用。

OutliersO3:繪制數(shù)據(jù)集中的異常值O3圖

OutliersO3能夠識別數(shù)據(jù)集變量中所有組合的潛在異常值。下面這張圖是來自Election(2005)數(shù)據(jù)集的四個變量的平行坐標(biāo)圖。

# Prepare O3plot results

library(OutliersO3)

data(Election2005)

data <- Election2005[, c(6, 10, 17, 28)]

O3p <- O3prep(data, method=c("HDo", "PCS", "BAC", "adjOut", "DDC", "MCD"))

O3p1 <- O3plotM(O3p)

#Create and add the new highlighting variable to the dataset

ty <- O3p1$outsTable %>% filter(Combination=="c1111")

ouFx <- data

ouFx$oh <- rep(0, nrow(data))

ouFx[ty$Case,"oh"] <- "A"

#Use plotting code from O3plotM

n1 <- ncol(data)

ouFx <- ouFx %>% mutate(alev = ifelse(oh == 0, 0.5, 1))

gp <- ggparcoord(ouFx %>% arrange(oh), scale = "uniminmax", columns=1:n1,

groupColumn="oh", alphaLines="alev") + labs(x = NULL, y = NULL) +

scale_colour_manual(values = c("grey70", "red")) +

theme(plot.title = element_text(size = 18, hjust = 0.5),

legend.position = "none", axis.ticks.y = element_blank(),

axis.text.y = element_blank())

gp

rainbow:條形圖、箱型圖、彩虹圖繪制

該圖來自Han Lin Shang和Rob J Hyndman提出的一些新的工具來可視化功能數(shù)據(jù)和識別功能異常值。利用了穩(wěn)健的主成分分析、數(shù)據(jù)深度和最高密度區(qū)域。

lattice:高級繪圖系統(tǒng)

lattice繪圖靈感來自于網(wǎng)格圖,強(qiáng)調(diào)多變量數(shù)據(jù)。網(wǎng)格圖形函數(shù)從一個可自定義的“設(shè)置”列表中獲取各種圖形參數(shù)(顏色、行類型、字體等)的默認(rèn)值。

圖片來自于書籍《Lattice: Multivariate Data Visualization with R》Chapter14 Figure14.2

brainGraph:大腦MRI數(shù)據(jù)的圖論分析

brainGraph用于執(zhí)行圖論分析的MRI數(shù)據(jù)。使用Freesurfer分析數(shù)據(jù)(皮層厚度、體素、局部褶皺指數(shù)、表面積)、彌散張量束成像數(shù)據(jù)(例如,來自FSL)和靜息態(tài)fMRI數(shù)據(jù)(例如,來自DPABI)。brainGraph包含一個用于圖形可視化和數(shù)據(jù)探索圖形用戶界面,以及用于生成有用圖形的幾個函數(shù)。

brainR:繪制大腦影像的‘misc3d’和‘rgl’包

brainR包括使用‘WebGL’,‘rgl’和‘JavaScript’命令創(chuàng)建3D和4D圖像的功能。這個包依賴于X工具包( X toolkit:‘XTK’)。

圖片來自于文章G. Grabner, A. L. Janke, M. M. Budge, D. Smith, J. Pruessner, and D. L. Collins, "Symmetric atlasing and model based segmentation: an application to the hippocampus in older adults", Med Image Comput Comput Assist Interv Int Conf Med Image Comput Comput Assist Interv, vol. 9, pp. 58-66, 2006.R

vioplot:小提琴圖

vioplot是箱圖和核密度圖的組合,該包可以自定義設(shè)置,可以畫出非常漂亮的小提琴圖。


WVPlots:繪制常見數(shù)據(jù)的可視化圖

WVPlots包是在‘ggplot2’和‘plotly’上實現(xiàn)標(biāo)準(zhǔn)化調(diào)用接口下的數(shù)據(jù)分析圖。感興趣的圖包括:‘ROC曲線’、增益曲線、帶有邊際分布的散點圖、帶有邊際密度的條件散點圖、帶有匹配理論分布的箱圖和莖葉圖、以及匹配理論分布的密度圖。

treemapify:在ggplot2中繪制樹狀圖

在treemap中,每個拼圖代表一個單獨的觀察部分,拼圖的面積與變量成比例。以“G20峰會”為例,每個拼圖代表一個國家。拼圖面積反應(yīng)了該國的GDP,而拼圖的填充顏色反應(yīng)了HDI(人類發(fā)展指數(shù))。還可以將其制作成隨年限變化的動圖,具體請參見參考來源附上的網(wǎng)址。

gplots:繪制可視化數(shù)據(jù)的各種R編程工具

gplots包含繪制數(shù)據(jù)的各種R編程工具,如計算和繪制局部平滑的匯總函數(shù)(‘bandplot’,‘wapply’),標(biāo)準(zhǔn)繪制的增強(qiáng)版本(‘barplot2’,‘boxplot2’,‘heatmap.2’,‘smartlegend’),顏色設(shè)置(‘col2hex’,‘colorpanel’,‘redgreen’,‘greenred’,‘bluered’,‘redblue’,‘rich.colors’),計算和繪制二維數(shù)據(jù)匯總(‘ci2d’,‘hist2d’), 回歸診斷圖(‘lmplot2’,‘residplot’)等。

圖片來自于文章Robust locally weighted regression and smoothing scatterplots,<加權(quán)回歸和平滑散點圖>。

plotly:基于web的ggplot2交互地圖

通過‘plot .js’創(chuàng)建交互式Web圖形。Plotly的R圖形庫可以制作交互式的、具有出版質(zhì)量的圖形。圖庫中有關(guān)于制作條形圖、散點圖、面積圖、誤差條形圖、直方圖、熱圖、子圖、多軸和3D(基于WebGL)的圖形示例。如下:

spacesRGB:標(biāo)準(zhǔn)和用戶自定義的RGB顏色工具

標(biāo)準(zhǔn)RGB包括sRGB,‘Adobe’RGB,‘ProPhoto’RGB,BT.709等。用戶自定義的RGB空間也是可以的。部分支持ACES顏色工作流。

r2d3:D3繪制可視化圖形的工具

利用D3進(jìn)行數(shù)據(jù)的動態(tài)和交互式的可視化。使用r2d3,需要編寫一個D3腳本,然后使用r2d3()函數(shù)傳遞R數(shù)據(jù)。例如,利用下面的一個簡單的D3腳本繪制如下圖所示的條形圖(“barchart.js”)。

// !preview r2d3 data=c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20)

var barHeight = Math.floor(height / data.length);

svg

? .selectAll("rect")

? .data(data)

? .enter()

? .append("rect")

? .attr("width", function (d) {

? ? return d * width;

? })

? .attr("height", barHeight)

? .attr("y", function (d, i) {

? ? return i * barHeight;

? })

? .attr("fill", "steelblue");

ezplot:常見圖表繪制函數(shù)集

使用ezplot可以快速創(chuàng)建演示圖表,這對于探索性數(shù)據(jù)分析也十分有用。一般情況下,ezplot函數(shù)為x、group、facet_y和facet_x的重復(fù)類別聚合多個y值。

iheatmapr:可繪制復(fù)雜的、交互式的熱圖

iheatmapr是一個用于繪制復(fù)雜且交互式的熱圖R包,它可以實現(xiàn)沿主熱圖的行或列的子圖添加關(guān)于每一行或每一列的更多信息。雖然已經(jīng)有很多很棒的R包來制作熱圖,包括相對簡單的交互式熱圖(heatmaply和d3heatmap)或復(fù)雜的靜態(tài)熱圖(ComplexHeatmap),但iheatmapr能夠讓復(fù)雜的交互式熱圖的繪制變得簡單。

library(iheatmapr)

data(measles, package = "iheatmapr")

main_heatmap(measles, name = "Measles<br>Cases", x_categorical = FALSE,

? ? ? ? ? ? layout = list(font = list(size = 8))) %>%

? add_col_groups(ifelse(1930:2001 < 1961,"No","Yes"),

? ? ? ? ? ? ? ? ? side = "bottom", name = "Vaccine<br>Introduced?",

? ? ? ? ? ? ? ? ? title = "Vaccine?",

? ? ? ? ? ? ? ? ? colors = c("lightgray","blue")) %>%

? add_col_labels(ticktext = seq(1930,2000,10),font = list(size = 8)) %>%

? add_row_labels(size = 0.3,font = list(size = 6)) %>%

? add_col_summary(layout = list(title = "Average<br>across<br>states"),

? ? ? ? ? ? ? ? ? yname = "summary")? %>%? ? ? ? ? ? ? ?

? add_col_title("Measles Cases from 1930 to 2001", side= "top") %>%

? add_row_summary(groups = TRUE,

? ? ? ? ? ? ? ? ? type = "bar",

? ? ? ? ? ? ? ? ? layout = list(title = "Average<br>per<br>year",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? font = list(size = 8)))

ggplotgui:通過GUI創(chuàng)建ggplot

ggplotgui可通過ggplot_shiny()函數(shù)來創(chuàng)建和優(yōu)化ggplot2圖形,并能夠產(chǎn)生要求的R代碼。

————————————————

版權(quán)聲明:本文為CSDN博主「茗創(chuàng)科技」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,702評論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,615評論 3 419
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,606評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,044評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,826評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,227評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,307評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,447評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,992評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,807評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,001評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,550評論 5 361
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,243評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,667評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,930評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,709評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,996評論 2 374

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