文章來源于微信公眾號(茗創(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)格圖琅攘,強調(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)繪制的增強版本(‘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)載請附上原文出處鏈接及本聲明筑累。