一文讀懂ggplot2數據可視化

2021-01-12 ecoinformatics

 前言

ggplot2是數據可視化的重要程序包,用於繪製各種高級統計圖形。該程序包是紐西蘭統計學家Hadley Wickham在2005年左右開發的,那時候作者還是美國Iowa大學的博士生。

 ggplot2的命令是一種用R實現的繪圖語言

ggplot2的代碼相對容易理解,設定各種參數較為方便,圖形也十分美觀,能用相對簡單的代碼在圖形中呈現出非常豐富的信息。不過,ggplot2的語法與傳統R函數的調用方式有很大差別,所以不少人反映學起來有些困難。

在ggplot2出現以前,R繪圖都是調用函數,再通過改變函數的參數實現的。ggplot2將所繪製圖形的各部分獨立出來,如xy坐標,基本組件的顏色、圖標大小、填充類型、堆疊方式、坐標軸、地圖投影、數據分組、圖形分面等等信息劃歸為一些基本類型,每一部分分別用一段代碼表示。每段代碼內部有相應的參數控制,各代碼段再通過「+」運算符連接。這裡的「+」並非四則運算的加法,而是表示圖形各要素/組件之間的疊加。「+」運算符所連接的代碼片段,有任何一部分做出更改,整個圖形就做出相應調整。因此,本質上,ggplot2代碼是用R語言實現的一種繪圖語言。

ggplot2所用的繪圖語言,主要是按照Wilkinson(2005)的設想實現的。Wilkinson(2005)將一幅統計圖形看做由以下幾個主要部分:

數據;

表現數據的點、線、多邊形、柵格、顏色等;

坐標系

 ggplot2命令的基本組成

具體來講,在ggplot2程序包中,每一副圖都是由若干組件組成的,這些組件包括:

data: 數據,必須為data.frame。

coordinate system: 數據可視化,主要是在二維平面上表示數據的關係,所用坐標系一般為平面直角坐標,有時會用到極坐標、地圖投影等。ggplot2軟體默認使用平面直角坐標。

geoms: 包括geoms_開頭的各種對象,用來繪製各種基本組件,包括點、線、面、多邊形、柱狀圖、箱線圖等。

aesthetics: 圖形的美學特徵,如顏色、形狀、透明度、大小、分組等。

scales: 坐標軸的屬性

stats: 統計變換。用於設定數據要進行的統計轉換,例如平均值、中位數、記錄數等。

facets: 描述如何將圖形按照某一個或者幾個因子(factors)不同水平(levels)用多個圖形分開展示。

 ggplot2要求輸入數據為data.frame

ggplot2要求輸入的數據為data.frame。為了將R中的各種數據轉換為ggplot2能夠讀取和操作的data.frame格式,H. Wickham還開發了reshape2以及dplyr等程序包,專門用於數據轉換。

 ggplot2中的aes函數

完整的ggplot2繪圖命令, 總是以ggplot() 開始。ggplot()及其參數奠定整個ggplot2圖形的基礎,最重要的兩個參數為data和mapping。其中data必須為data.frame格式。mapping參數要求數據通過aes函數進一步轉換。aes是aesthetic的縮寫。在aes函數中,要輸入的參數有x, y, group, color, size等。aes可以直接訪問data參數所輸入數據框的各列,從而直接控制圖形的橫坐標、縱坐標、分組以及各組的顏色、大小、透明度等等。

注意:在ggplot()代碼部分設置的aes參數對於整個圖形都有效。在某個geom組件內部設置的aes參數,如顏色、分組、字體大小、線段類型等,只對該geom組件有效。若要設定所有geom組件的形狀、大小、顏色等,相應的參數如size, color等,不要放入aes函數轉換,而是作為ggplot()函數的普通參數即可。

 ggplot2的geom組件

ggplot()代碼段只定義數據展示的邏輯關係,並不直接繪圖。要用ggplot2繪圖,還必須為其添加各種基本圖形組件。要添加的圖形組件根據變量的數目以及要繪製的圖形有所不同,包括:點geom_point、線geom_line、多邊形geom_polygon、箱線圖geom_boxplot、柱狀圖geom_bar、六角形圖geom_hex、柵格圖geom_tile、階梯線geom_step、擬合的趨勢線geom_smooth等等。

為了對圖形進行進一步修飾,還可能要更改圖形的橫坐標、縱坐標、標題等等。

 ggplot2圖形的顯示

ggplot2所生成的對象,同時具有gg和ggplot兩種屬性。如果要顯示圖形,需要將其print到屏幕上,而不是像plot()函數一樣直接調用函數就可以調用繪圖設備(屏幕也是繪圖設備)。與此同時,ggplot2的圖形也不接受par()設定的各種參數。

本文就ggplot2的常用繪圖組件做簡要介紹。

 快速繪圖 qplot (不建議使用)

為了讓只熟悉R基礎繪圖的用戶也能使用ggplot2,H. Wickham編寫了qplot函數,調用方式類似plot()。在qplot()中,所有控制圖形的信息都封裝為參數。但是qplot()在一定程度上降低了繪圖的靈活性,難以體現ggplot2的優勢,因此不太建議使用。


library(maps)
library(ggthemes)
library(ggplot2)

 普通繪圖

plot(hwy ~ cty, data = mpg)

 qplot繪圖

qplot(x = cty, y = hwy, color = cyl, data = mpg, geom = "point")

 ggplot2繪圖

ggplot(data = mpg, aes(x = cty, y = hwy)) +
geom_point(aes(color = cyl)) +
geom_smooth(method = "lm") +
coord_cartesian() +
scale_color_gradient() +
theme_base() +
scale_shape(solid = FALSE) +
ggtitle("New Plot Title") +
xlab("New X label") +
ylab("New Y label")

 基本繪圖組件及其屬性 多邊形

thismap = map_data("world")
c <- ggplot(thismap, aes(long, lat, group=group))
c + geom_polygon(fill="white", colour="gray")

 折線圖

ggplot(economics, aes(date, unemploy)) +
geom_path(lineend = "butt", linejoin = "round", linemitre = 1)

 帶狀圖

ggplot(economics, aes(date, unemploy)) +
geom_ribbon(aes(ymin = unemploy - 900, ymax = unemploy + 900))

 線段

ggplot(seals, aes(x = long, y = lat)) +
geom_segment(aes(xend = long + delta_long, yend = lat + delta_lat))

 長方形

ggplot(seals, aes(x = long, y = lat)) +
geom_rect(aes(xmin = long, ymin = lat, xmax = long + delta_long, ymax = lat + delta_lat))

 一維連續數據(向量)繪圖 一維連續數據

a <- ggplot(mpg, aes(hwy))

 頻度陰影圖

a + geom_area(stat = "bin")

## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

 核密度圖

a + geom_density(kernel = "gaussian")

 點狀頻度圖

a + geom_dotplot()

## `stat_bindot()` using `bins = 30`. Pick better value with `binwidth`.

 頻度折線圖

a + geom_freqpoly()

## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

 單變量離散數據

b <- ggplot(mpg, aes(fl))
b + geom_bar()

 二維連續變量繪圖 x和y均為連續變量 空白圖形,只生成坐標

f <- ggplot(mpg, aes(cty, hwy))
f + geom_blank()

 帶隨機擴散的散點圖

f + geom_jitter()

 散點圖

f + geom_point()

 分位數回歸線

f + geom_quantile()

## Loading required package: SparseM

##
## Attaching package: 'SparseM'

## The following object is masked from 'package:base':
##
## backsolve

## Smoothing formula not specified. Using: y ~ x

 xy軸投影

f + geom_rug(sides = "bl")

 線性模型擬合以及置信區間

f + geom_smooth(method = "lm")

 Loess擬合趨勢線以及置信區間

f + geom_smooth(method = "auto")

## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

 x為離散變量,y為連續變量 柱狀圖

g <- ggplot(mpg, aes(class, hwy))
g + geom_bar(stat = "identity")

 箱線圖

g + geom_boxplot()

 點圖

g + geom_dotplot(binaxis = "y", stackdir = "center")

## `stat_bindot()` using `bins = 30`. Pick better value with `binwidth`.

 小提琴圖

g + geom_violin(scale = "area")

 x為離散變量, y為離散變量

h <- ggplot(diamonds, aes(cut, color))
h + geom_jitter()

 二維密度分布圖 柵格圖

data(iris)
i <- ggplot(iris, aes(Sepal.Length, Sepal.Width))
i + geom_bin2d(binwidth = c(5, 0.5))

 等高線密度圖

i + geom_density2d()

 六角形密度圖

i + geom_hex()

 x軸為時間序列的連續變量 陰影圖

j <- ggplot(economics, aes(date, unemploy))
j + geom_area()

 折線圖

j + geom_line()

 階梯圖

j + geom_step(direction = "hv")

 添加誤差線

df <- data.frame(grp = c("A", "B"), fit = 4:5, se = 1:2)
k <- ggplot(df, aes(grp, fit, ymin = fit-se, ymax = fit+se))

 誤差箱圖

k + geom_crossbar(fatten = 2)

 誤差線圖(帶橫線)

k + geom_errorbar()

 誤差線圖(不帶橫線)

k + geom_linerange()

 帶誤差線的點圖

k + geom_pointrange()

 三維數據的可視化

seals$z <- with(seals, sqrt(delta_long^2 + delta_lat^2))
m <- ggplot(seals, aes(long, lat))

 等高線圖

m + geom_contour(aes(z = z))

 柵格圖

m + geom_raster(aes(fill = z), hjust=0.5, vjust=0.5, interpolate=FALSE)

 瓦片圖

m + geom_tile(aes(fill = z))

 統計變換

a + geom_bar(stat = "bin")

## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

說明:stat_bin(geom = "bar") 和 geom_bar(stat = "bin") 兩者等價

 一維概率密度統計變換參數的設定

a + stat_bin(binwidth = 1, boundary = 10)

a + stat_density(adjust = 1, kernel = "gaussian")

 二維概率密度統計變換參數的設定

f + stat_bin2d(bins = 30, drop = TRUE)

f + stat_binhex(bins = 30)

f + stat_density2d(contour = TRUE, n = 100)

 三維數據的統計變換參數設定 等高線圖

m + stat_contour(aes(z = z))

 線段圖

m+ geom_spoke(aes(radius= z, angle = z))

 六角形圖

m + stat_summary_hex(aes(z = z), bins = 30, fun = mean)

 柵格圖

m + stat_summary_2d(aes(z = z), bins = 30, fun = mean)

 組間比較 箱線圖

g + stat_boxplot(coef = 1.5)

 提琴圖參數設定

g + stat_ydensity(adjust = 1, kernel = "gaussian", scale = "area")

 累積曲線

f + stat_ecdf(n = 40)

 分位數曲線圖

f + geom_quantile(quantiles = c(0.25, 0.5, 0.75), formula = y ~ log(x), method = "rq")

 Loess回歸以及置信區間統計變換的參數設定

f + geom_smooth(method = "auto", formula = y ~ x, se = TRUE, n = 80, fullrange = FALSE, level = 0.95)

## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

 繪製dnorm的概率密度分布

ggplot() + stat_function(aes(x = -3:3), fun = dnorm, n = 101, args = list(sd=0.5))

 繪製散點圖

f + stat_identity()

 繪製qq圖

ggplot() + stat_qq(aes(sample=1:100), distribution = qt, dparams = list(df=5))

 繪製散點圖, 點的大小為該點數據出現的次數

f + stat_sum()

 帶誤差線的點圖

f + stat_summary(fun.data = "mean_cl_boot")

## Warning: Removed 3 rows containing missing values (geom_pointrange).

 無重複散點圖

f + stat_unique()

 圖例

ggplot2 的圖例與圖形是一個整體, 設定圖例的參數, 圖例會更改, 設定圖形的參數, 圖例會自動更改。scale 控制圖形中的顏色,文字顯示, 圖例中的圖形。

n <- b + geom_bar(aes(fill = fl))
n


n + scale_fill_manual(
values = c("skyblue", "royalblue", "blue", "navy"),
limits = c("d", "e", "p", "r"),
breaks =c("d", "e", "p", "r"),
name = "fuel", labels = c("D", "E", "P", "R"))

 坐標軸的控制

按照數據的類別, 分為

scale_x_continuous()
scale_x_discrete()
scale_x_identity()
scale_x_manual(values = c())
scale_y_continuous()
scale_y_discrete()
scale_y_identity()
scale_y_manual(values = c())

這幾個函數的參數主要為:

alpha, 透明度

color, 顏色序列

fill, 顏色序列

linetype, 線段類型

shape, 點的形狀

size, 點的大小

 x軸顯示日期

library(scales)
scale_x_date(labels = date_format("%m/%d"), breaks = date_breaks("2 weeks"))

 x軸顯示為日期和時間

scale_x_datetime()

 x軸轉換為以10為底的對數

scale_x_log10()

 x軸逆向顯示

scale_x_reverse()

 x軸平方根變換

scale_x_sqrt()

 顏色

顏色主要用來顯示分組,或者數據的連續梯度變化。

 顏色設定

在ggplot2中,可以通過scale_fill_brewer(palette = "")函數,可以將色系調整為以下任何一種。

 最大差異色系 Diverging

BrBG, PiYG, PRGn, PuOr, RdBu, RdGy, RdYlBu, RdYlGn, Spectral

 離散色系 Qualitative

Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3

 序列色系 Sequential

Blues, BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu, PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu, YlOrBr, YlOrRd

通過aes設定分組之後,如fill, color, group等,ggplot會自動設定顏色。點圖、柵格圖等連續變量,默認為深藍色色系(「Diamond\nclarity」)。

調整圖形顏色的函數還包括:

scale_colour_brewer

scale_fill_brewer

scale_colour_distiller

scale_fill_distiller

scale_colour_gradient

scale_fill_gradient

scale_colour_gradient2

scale_fill_gradient2

scale_colour_gradientn

scale_fill_gradientn

scale_colour_grey

scale_fill_grey

scale_colour_hue

scale_fill_hue

等多種,分別用來對畫布中的點線面進行不同的填充設色等。

n <- b + geom_bar(aes(fill = fl))

 R中調色板設置

n + scale_fill_brewer(palette = "Blues")

n + scale_fill_brewer(palette = "BrBG")

 R中的灰色梯度顯示柱狀圖

n + scale_fill_grey( start = 0.2, end = 0.8, na.value = "red")

 通過 scale_fill_gradient顯示顏色過渡

o <- a + geom_dotplot(aes(fill = ..x..))
o + scale_fill_gradient( low = "red", high = "yellow")

## `stat_bindot()` using `bins = 30`. Pick better value with `binwidth`.

 通過scale_fill_gradient2顯示顏色過渡

o + scale_fill_gradient2( low = "red", high = "blue", mid = "white", midpoint = 25 )

## `stat_bindot()` using `bins = 30`. Pick better value with `binwidth`.

 選擇顏色序列

o + scale_fill_gradientn(colours = terrain.colors(6) )

## `stat_bindot()` using `bins = 30`. Pick better value with `binwidth`.

其他可以選擇的顏色: rainbow(), heat.colors(), topo.colors(), cm.colors(), RColorBrewer::brewer.pal()

 形狀

繪製散點圖時,不同形狀的點表示分組,ggplot2已經儘可能做了最優化處理。以保證各組點的形狀都能做較好區分。如果要表示的分組數量太多,ggplot2會給出相應警告。

 按照形狀分組 點圖標的選擇

p <- f + geom_point(aes(shape = fl))

 顯示空心圖標

p + scale_shape(solid = FALSE)

 指定點圖標

p + scale_shape_manual(values = c(3:7))

 更改圖標大小


q <- f + geom_point(aes(size = cyl))

q + scale_size_area()

 坐標系

每個圖形,只能設定一個坐標系。默認情況下,ggplot2使用平面直角坐標系。用戶可以指定使用極坐標coord_polar,也可以通過coord_trans,coord_flip等對坐標軸的刻度進行相應變換。

 平面直角坐標系

r <- b + geom_bar()
r + coord_cartesian(xlim = c(0, 5))

 橫軸、縱軸以固定比例顯示

r + coord_fixed(ratio = 1/2)

 橫軸縱軸調換

r + coord_flip()

 極坐標, 適用於繪製餅圖

r + coord_polar(theta = "x", direction=1 )

 橫軸、縱軸的變換,如 log, sqrt等

r + coord_trans(y = "sqrt")

 設定坐標軸範圍

t + coord_cartesian(xlim = c(0, 100), ylim = c(10, 20))

## NULL

t + xlim(0, 100) + ylim(10, 20)

## NULL

 細節調整 柱狀圖的疊加以及比較 並排排列

s <- ggplot(mpg, aes(fl, fill = drv))
s + geom_bar(position = "dodge")

 堆疊排列

s + geom_bar(position = "stack")

 按百分比堆疊排列, 各柱子等高

s + geom_bar(position = "fill")

 散點圖的隨機化

在每個點的x,y方向上都加上較小的隨機值, 以便點能散開。

f + geom_point(position = "jitter")

 繪圖主題

所謂主題,就是繪圖的風格。通過設定圖形的主題,可以生成各種風格的圖形。

ggplot2自身提供了一些主題,如:

theme_grey()

theme_gray()

theme_bw()

theme_linedraw()

theme_light()

theme_dark()

theme_minimal()

theme_classic()

theme_void()

theme_test()

t <- ggplot(mpg, aes(cty, hwy)) + geom_point()
t + theme_grey()
t + theme_classic()
t + theme_minimal()

ggthemes程序包(https://jrnold.github.io/ggthemes/reference/index.html)提供了更多主題,加載後,即可與ggplot2混合使用。

theme_base(): 模擬plot()的風格

theme_calc(): LibreOffice Calc風格

theme_economist() : 經濟學家雜誌風格

theme_economist_white(): 經濟學家雜誌

theme_excel(): 微軟Office Excel傳統風格

theme_excel_new(): 微軟Office Excel最新風格

theme_few():Few’s 「Practical Rules for Using Color in Charts」

theme_fivethirtyeight(): Theme inspired by fivethirtyeight.com plots

theme_foundation()

theme_gdocs() : google文檔風格

theme_hc(): Highcharts Theme

theme_igray(): 逆向灰色梯度風格

theme_map(): 簡約地圖風格 Clean theme for maps

theme_pander() : A ggplot theme originated from the pander package

theme_par(): Theme which uses the current 『base』 graphics parameter values from par(). Not all par() parameters, are supported, and not all are relevant to ggplot2 themes.

theme_solarized() theme_solarized_2(): ggplot color themes based on the Solarized palette

theme_solid(): Theme with nothing other than a background color

theme_stata(): Stata統計軟體繪圖風格

theme_tufte():Tufte Maximal Data, Minimal Ink Theme

theme_wsj():華爾街日報風格 Wall Street Journal theme

更多細節調整,可以查看theme()函數。

 圖形分面 facet

當要按照某一個因子的不同水平,將每個水平分別展示在不同的圖形時,可以使用圖形分面。例如,各省份GDP的逐年變化,可以按照年份繪製多個地圖,每個小地圖(分面)只展示該年份的GDP即可。


t <- ggplot(mpg, aes(cty, hwy)) + geom_point()
t + facet_grid(. ~ fl)

t + facet_grid(year ~ .)

t + facet_grid(year ~ fl)

t + facet_wrap(~ fl)


t + facet_grid(. ~ fl, labeller = label_both)

t + facet_grid(. ~ fl, labeller = label_bquote(alpha ^ .(x)))

t + facet_grid(. ~ fl, labeller = label_parsed)

 標題和坐標軸 更改標題和坐標軸名稱

默認情況下,ggplot2繪製的圖形並沒有標題,添加標題,可以用ggtitle函數。

t + ggtitle("New Plot Title")

t + xlab("New X label")

t + ylab("New Y label")

t + labs(title =" New title", x = "New x", y = "New y")

ggtitle添加的標題默認是向左排列的,要設置標題居中,則用theme函數。

t + ggtitle("New Plot Title")+
theme(plot.title = element_text(hjust = 0.5))

 圖例位置

t2 <- ggplot(mpg, aes(cty, hwy, color = trans)) + geom_point()
t2 + theme(legend.position = "bottom")

t2 + guides(color = "none")

t2 + scale_fill_discrete(name = "Title", labels = c("A", "B", "C"))

 添加標註

而在ggplot2中,使用的是annotate()。annotate可以添加,文字、多邊形或者任何其他geom對象。

 繪製地圖 geom_map

data <- data.frame(murder = USArrests$Murder,
state = tolower(rownames(USArrests)))
map <- map_data("state")

l <- ggplot(data, aes(fill = murder))

l + geom_map( aes(map_id = state), map = map ) +
expand_limits( x = map$long, y = map$lat )

 geom_polygon





library(maps)
thismap = map_data("world")
ggplot(thismap, aes(long, lat, group=group)) +
geom_polygon(fill="white", colour="gray") +
coord_map(projection = "ortho", orientation=c(41, -74, 0))

 geom_sf

ggplot2 程序包還可以支持sf程序包的對象,geo_sf系列函數可以較為方便地生成地圖。

由於sf程序包的st_read, st_transform, st_as_sf提供了讀取和轉換空間數據的辦法,因此通過sf讀取和處理空間數據,用ggplot2進行可視化,不失為很好的選擇。

stat_sf()
geom_sf()
geom_sf_label()
geom_sf_text()
coord_sf()

 保存圖像

ggplot2的ggsave函數,可以根據圖形的擴展名, 將ggplot2繪製的圖形保存為相應的文件格式,默認保存7×7英寸, 300dpi的圖形。

ggsave()

 進一步閱讀

http://www.cookbook-r.com/Graphs/

https://www.rstudio.com/resources/cheatsheets/

Hadley Wickham (2010). A layered grammar of graphics. Journal of Computational and Graphical Statistics, 19(1), 3-28.

Wilkinson, L. (2012). The grammar of graphics. In Handbook of Computational Statistics (pp. 375-414). Springer, Berlin, Heidelberg.

Wilkinson, L. (2011). ggplot2: Elegant Graphics for Data Analysis by WICKHAM, H. Biometrics, 67(2), 678-679.

Hadley Wickham (2007). Reshaping Data with the reshape Package. Journal of Statistical Software, 21(12), 1-20. http://www.jstatsoft.org/v21/i12/.

Hadley Wickham, Romain François, Lionel Henry and Kirill Müller (2019). dplyr: A Grammar of Data Manipulation. R package version 0.8.0.1. https://CRAN.R-project.org/package=dplyr


相關焦點

  • R繪圖:一文了解ggplot2顏色的設置
    R繪圖往期回顧:ggplot2繪圖學習 兩個連續性變量ggplot2繪圖學習:單變量+繪圖背景R繪圖
  • 3*差異分析方法和可視化方法匯總
    2、所涉及的代碼操作,參數全部外置,客戶可以不用讀懂代碼也可以操作。4、所有的課程都提供demo數據測試,並經過了內部審核。Limma、RankRrod、Deseq2、edgeR、t-test。以下是視頻的word版本小編給大家介紹下常用的富集分析方法以及基礎的可視化方式2)FPKM、RPKM、TPM標準化後的RNA-seq數據;其中,microarray的rma數據可以利用
  • 一文讀懂電容傳感器
    藍色標題,獲取文章】 10、一文讀懂光纖傳感器 11、一文讀懂溫溼度傳感器 12
  • 一文讀懂磁傳感器(必須收藏)
    【點擊藍色標題,獲取文章】 >、一文讀懂接近傳感器 3、一文讀懂磁傳感器 4、一文讀懂流量傳感器
  • 一文讀懂MEMS傳感器(必須收藏)
    【點擊藍色標題,獲取文章】 1
  • 2015年度10大Plotly數據可視化美圖及工具介紹 | 網際網路數據資訊網...
    學習如何運用Plotly 在Python裡繪製這種聚類樹狀熱點圖(Learn how to make this dendrogram heatmap),你也可以使用ggplot2來實現。第五位.「歷史上繪畫大師對色彩的選擇」
  • SparkR編程系列 | 機器學習+數據可視化
    朝樂門@ruc為您詳細講解SparkR的KMeans機器學習和數據可視化的知識,並給出實際程序代碼、代碼介紹及運行結果  —— 一份你的大腦也可以直接執行和調試的SparkR源程序。本案例由朝樂門設計與編寫。
  • ggplot2版聚類物種豐度堆疊圖
    今天更新基於ggplot2系統的教程。加載依賴關係這裡的ggtree需要使用19年7月以後的版本,因為這以後的版本才支持將聚類結果轉化為樹結構。如果你的Bioconductor版本較舊,可能一直會安裝舊版ggtree。
  • 推薦:一文讀懂ICP-AES
    原標題:推薦:一文讀懂ICP-AES 1. 什麼叫ICP-AES?它是用來做什麼的? 研之成理稿件徵集 研之成理面向所有對科研感興趣的研友們徵集稿件,內容包括但不限於:文獻解讀;科研作圖,數據可視化教程;論文寫作分享; 課題總結,名師介紹;儀器表徵等基礎知識;科研感悟心得方法和實驗室安全相關內容等。
  • 淺談數據可視化
    我主要進行了少量數據處理和系統可視化部分,在這個過程中,覺得數據可視化是一個非常迷人的話題,這過程中也了解了很多相關的資料,學習了一些基礎的工具,在這裡分享給大家,也是為自己做一個整理和記錄。1、什麼是數據可視化?
  • 數據可視化的基本流程
    作者 | 向倩文來源 | 數據產品手記大多數人對數據可視化的第一印象,可能就是各種圖形,比如Excel圖表模塊中的柱狀圖、條形圖、折線圖、餅圖、散點圖等等,就不一一列舉了。以上所述,只是數據可視化的具體體現,但是數據可視化卻不止於此。
  • 如何在Python中創建交互式可視化?(建議收藏)
    如何在Python中創建交互式可視化。在探索添加更多交互控制項之前,我們將僅以不同格式繪製數據開始。如果您一直關注我一段時間,會注意到這是數據可視化系列文章中的第三篇。首先使用默認的python可視化庫matplotlib引入了數據可視化。然後,我們學習了如何使用相同的庫在時間序列上創建動畫可視化效果。
  • 海洋數據三維可視化
    海洋數據可視化平臺指通過海洋信息三維可視化技術,實現海洋信息數據的可視化。海洋數據可視化是科學管理海洋數據的重要組成部分,它能夠將無法直接查看的數據以直觀的圖形方式展示出來,提高海洋數據研究利用能力,能提髙數據訪問效率及安全性。
  • 從數據可視化到交互式數據分析
    這一步驟有一個重要點是,可能會產生不正確的推論。因此並非所有的過程都必然帶來積極的結果,也不是所有的分析都同樣有效。數據分析幾個重要的方面我想強調一下這個過程的幾個重要方面:(1)這個過程不是連續有序的,而是高度迭代的雖然我將這些步驟按順序呈現,但是真正的過程根本就不是這樣的。
  • 大公司都是怎麼做數據可視化規範的
    如何從中啟發來構建自己的數據可視化設計指南?企業或組織進行數據可視化時,需要用數據可視化設計指南來規範信息表示形式。通常包括是什麼(圖表的類型有哪些?)、為什麼(如為什麼使用這個顏色?)和怎麼做(如用什麼工具設計?)。如果涉及到一些設計工具,如Excel、R、D3.js或Tableau,可視化指南還會提供一個模板來演示如何應用。
  • 這16個數據可視化案例,驚豔了全球數據行業
    數據可視化可以幫你更容易的解釋趨勢和統計數據。  數據是非常強大的。當然,如果你能真正理解它想告訴你的內容,那它的強大之處就更能體現出來了。  通過觀察數字和統計數據的轉換以獲得清晰的結論並不是一件容易的事。必須用一個合乎邏輯的、易於理解的方式來呈現數據。  談談數據可視化。
  • 數據可視化的一些思考丨從三個問題看數據可視化的商業前景
    數據可視化的需求場景是什麼?一種場景是「看」,數據可視化的主要作用是展示匯報,是信息的獲取。比如前不久RayData團隊為央視頻打造的生態可視化交互管理系統,以及在央視現場的工作區,利用RayData Web做出來的環形可視化大屏,都是為了讓管理者、運營者、業務人員更好地獲取相關信息。另一種場景是「用」,數據可視化的主要目的是交互管理,是數據的應用。
  • 跟著Nature Methods學畫圖:R語言ggplot2畫氣泡圖(dotplot)展示基因表達量
    今天的推文繼續重複論文中的原圖在簡書 土豆學生信 分享的內容看到這篇論文 簡書的連結是 https
  • 兩步搞定數據可視化
    數據可視化強調以圖形形式呈現抽象信息。數據可視化使我們能夠發現傳統報告,表格或電子表格中未被注意的模式,趨勢和相關性。研究表明,人類對視覺的反應優於任何其他類型的刺激。人類大腦處理視覺信息的速度比文本快60,000倍。
  • 使用ggtree實現進化樹的可視化和注釋
    ggtree是個簡單易用的R包,一行代碼ggtree(read.tree(file))即可實現樹的可視化。而注釋通過圖層來實現,多個圖層可以完成複雜的注釋,這得力於ggtree的設計。其中最重要的一點是如何來解析進化樹。除了ggtree之外,我所了解到的其它畫樹軟體在畫樹的時候都把樹當成是線條的集合。