真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

r語言如何go畫圖 r語言繪制圖

R語言畫圖基礎功能

R語言有著很強大的畫圖功能。我們可以從下面的語句中得到

10年積累的成都網站設計、網站建設、外貿網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計后付款的網站建設流程,更有港南免費網站建設讓你可以放心的選擇與我們合作。

1、繪畫函數

高級畫圖功能(創(chuàng)建一個新的圖形)

低級繪圖函數(在現有的圖形上添加元素)

2、繪圖參數介紹

高級繪圖函數共同參數選項:

其它常用繪圖參數(可以使用help(par)查看)

3、畫圖面板分割

在一個面板中畫多張圖

(1)、par中參數mfrow和mfcol

(2)、ayout函數

生成復雜的圖形排列

(3)、其它函數

在一個面板中畫多張圖

4.圖形保存

(1)輸出到屏幕

windows, X11

(2)輸出到文件

df , postscript , xfig, bitmap, pictex, cairo_pdf, svg, png, jpeg, bmp, tiff

通過菜單命令保存圖形

【R語言】解決GO富集分析繪圖,標簽重疊問題

前面我給大家詳細介紹過

?GO簡介及GO富集結果解讀

?四種GO富集柱形圖、氣泡圖解讀

?GO富集分析四種風格展示結果—柱形圖,氣泡圖

?KEGG富集分析—柱形圖,氣泡圖,通路圖

? DAVID GO和KEGG富集分析及結果可視化

也用視頻給大家介紹過

? GO和KEGG富集分析視頻講解

最近有粉絲反映說,利用clusterProfiler這個包繪制GO富集分析氣泡圖和柱形圖的時候,發(fā)現GO條目的名字都重疊在一起了。

氣泡圖

柱形圖

這個圖別說美觀了,簡直不忍直視。經過我的認真研究,發(fā)現跟R版本有關。前面我給大家展示的基本都是R 3.6.3做出來的圖。很多粉絲可能用的都是最新版本的R 4.1.2。

我們知道R的版本在不停的更新,相應的R包也在不停的更新。我把繪制氣泡圖和柱形圖相關的函數拿出來認真的研究了一下,終于發(fā)現的癥結所在。

dotplot這個函數,多了個 label_format 參數

我們來看看這個參數究竟是干什么用的,看看參數說明

label_format :

a numeric value sets wrap length, alternatively a custom function to format axis labels. by default wraps names longer that 30 characters

原來這個參數默認值是30,當標簽的長度大于30個字符就會被折疊,用多行來展示。既然問題找到了,我們就來調節(jié)一下這個參數,把他設置成100,讓我們的標簽可以一行展示。

是不是還是原來的配方,還是熟悉的味道

同樣的柱形圖,我們也能讓他恢復原來的容貌。

關于如何使用R做GO和KEGG富集分析,可參考下文

GO和KEGG富集分析視頻講解

r語言ggbio包使用方法

第一步:獲取要繪圖的整潔數據(涉及到數據整潔和操作的知識)

第二步:整潔數據做映射操作,確定x,y,color,size,shape,alpha等

第三步:選擇合適的幾何對象(根據畫圖的目的、變量的類型和個數)

第四步:坐標系和刻度配置

第五步:標簽信息和圖例信息

第六步:選擇合適的主題

ggplot2的語法包括10個部件。

數據(data)

映射(mapping)

幾何對象(geom)

標度(scale)

統計變換(stats)

坐標系(coord)

位置調整(Position adjustments)

分面(facet)

主題(theme)

輸出(output)

前3個是必須的,其它部件ggplot2會自動配置,也可以手動配置

ggplot2基本繪圖模板:

注意:

1)添加圖層的加號(+)只能放在行末尾

2)紅色方框里面mapping是全局域,綠色方框里面mapping是局部域,執(zhí)行先后順序,先局部域,后全局域

ggplot2畫圖必要部件-數據,映射和幾何對象

2.1 數據

數據(Data)用于畫圖的整潔數據

library(tidyverse

ggplot()先只提供數據,創(chuàng)建一個空圖形。

# ggplot()先提供整潔數據,生成一個空圖形

2映射

映射,把數據變量集與圖形屬性庫建立關聯。

最常用的映射有:

x:x軸

y:y軸

color:顏色

size:大小

shape:形狀

fill:填充

alpha:透明度

以mpg數據集為例,把變量displ和hwy分別映射到x和y,變量drv映射到color,此時圖形就有了坐標軸和網格線,color需要在有了幾何對象后才能體現出來。

# 映射操作

ggplot(data = mpg, mapping = aes(x = displ,

y = hwy, color = drv))

2.3 幾何對象

幾何對象是表達數據的視覺對象

不同類型的幾何對象是從不同的角度表達數據。

pgglot2提供了50多種“幾何對象”,均以geom_xxxx()的方式命名,常用的有:

幾何對象很簡單,只需要添加圖層即可。

例如,以mpg數據集為例,畫散點圖。

ggplot(data = mpg, mapping = aes(x = displ,

y = hwy,

color = drv)) +

geom_point()層依次疊加,在上圖的基礎上,再添加一個幾何對象:光滑曲線。

#繼續(xù)增加一個幾何對象:光滑曲線

# 寫法1

ggplot(data = mpg, mapping = aes(x = displ,

y = hwy,

color = drv)) +

geom_point() +

geom_smooth(se=FALSE)

# 寫法2

ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) +

geom_point(aes(color = drv)) +

geom_smooth(se=FALSE)

思考題:

1)寫法1和寫法2的差異?(全局域和局部域的使用差異)

2)寫法2若是要實現寫法1的功能,怎么編寫代碼?

03

標度

ggplot2會自動根據輸入變量選擇最優(yōu)的坐標刻度方法,若要手動設置或調整,就需要使用標度函數。

標度函數用來控制幾何對象中的標度映射(x軸,y軸或者由color,fill,shape,size產生的圖例)。

ggplot2提供豐富的標度函數,常用的有:

拓展功能:scales包提供很多設置刻度標簽風格的函數,比如百分數、科學計數法法、美元格式等。

3.1 修改坐標軸刻度及標簽

連續(xù)變量使用scale_*_continuous()函數,參數breaks設置各個刻度的位置,參數labels設置各個刻度對應的標簽。

離散變量使用scale_*_discrete()函數,修改離散變量坐標軸的標簽。

時間變量使用scale_x_date()函數設置日期刻度,參數date_breaks設置刻度間隔,date_labels設置標簽的日期格式

以mpg數據集為例,修改連續(xù)變量坐標軸刻度及標簽。

# scale_y_continuous函數

# 對比分析和觀察

# 圖1

ggplot(mpg, aes(displ, hwy)) +

geom_point()

# 圖2

ggplot(mpg, aes(displ, hwy)) +

geom_point() +

scale_y_continuous(breaks = seq(15, 40, by = 10))

# 圖3

ggplot(mpg, aes(displ, hwy)) +

geom_point() +

scale_y_continuous(breaks = seq(15, 40, by = 10),

labels = c(" 一五 "," 二五 "," 三五 "))

以mpg數據集為例,修改離散變量的標簽

# scale_x_discrete函數

# 對比分析和觀察

# 圖1

ggplot(mpg, aes(x = drv)) +

geom_bar()

# 圖2

ggplot(mpg, aes(x = drv)) +

geom_bar() +

scale_x_discrete(labels = c("4" = " 四驅 ", "f" = " 前驅 ",

"r" = " 后驅 "))

以ggplot2自帶的economics數據集為例,修改日期變量。

# scale_x_date函數

# 以ggplot2自帶的economics為例

economics %% glimpse()

# 圖1

ggplot(tail(economics, 45), aes(date, uempmed / 100)) +

geom_line()

# 圖2

ggplot(tail(economics, 45), aes(date, uempmed / 100)) +

geom_line() +

scale_x_date(date_breaks = "6 months", date_labels = "%Y-%b") +

scale_y_continuous(labels = scales::percent)

3.2 修改坐標軸標簽、圖例名及圖例位置

用labs()函數參數x,y或者xlab(),ylab(),設置x軸,y軸標簽。

若用參數color生成了圖例,可以在labs()函數用參數color修改圖例名。

用theme圖層的參數legend.position設置圖例的位置。

以mpg數據為例。

# 修改坐標軸標簽,圖例名和圖例位置

mpg

# 圖1

ggplot(mpg, aes(displ, hwy)) +

geom_point(aes(color = drv)) +

labs(x = " 引擎大小 (L)", y = " 高速燃油率 (mpg)",

color = " 驅動類型 ") +

theme(legend.position = "top")

# 圖2

ggplot(mpg, aes(displ, hwy)) +

geom_point(aes(color = drv)) +

xlab(" 引擎大小 (L)") +

ylab(" 高速燃油率 (mpg)") +

labs(color = " 驅動類型 ") +

theme(legend.position = "top")

# 圖3 不需要圖例

ggplot(mpg, aes(displ, hwy)) +

geom_point(aes(color = drv)) +

xlab(" 引擎大小 (L)") +

ylab(" 高速燃油率 (mpg)") +

theme(legend.position = "none")

3.3 設置坐標軸的范圍

用coord_cartesian()函數參數xlim和ylim,或者用xlim(),ylim()設置x軸和y軸的范圍。

以mpg數據集為例。

# 修改坐標軸的范圍

# 圖1 coord_cartesian()的參數xlim和ylim

ggplot(mpg, aes(displ, hwy)) +

geom_point(aes(color = drv)) +

coord_cartesian(xlim = c(5, 7), ylim = c(10, 30))

# 圖2 xlim()和ylim()函數

ggplot(mpg, aes(displ, hwy)) +

geom_point(aes(color = drv)) +

xlim(5, 7) +

ylim(10, 30)

3.4 變換坐標軸

用scale_x_log10()函數變換坐標系,可以保持原始數據的坐標刻度。

# 修改坐標軸的范圍

# 圖1 coord_cartesian()的參數xlim和ylim

ggplot(mpg, aes(displ, hwy)) +

geom_point(aes(color = drv)) +

coord_cartesian(xlim = c(5, 7), ylim = c(10, 30))

# 圖2 xlim()和ylim()函數

ggplot(mpg, aes(displ, hwy)) +

geom_point(aes(color = drv)) +

xlim(5, 7) +

ylim(10, 30)

3.5 設置圖形標題

用labs()函數設置圖形標題。

參數title 設置正標題

參數subtitle 設置副標題

參數caption 設置腳注標題(默認右下角)

# 設置標題

# mpg數據集為例

p - ggplot(mpg, aes(displ, hwy)) +

geom_point(aes(color = drv)) +

geom_smooth(se = FALSE) +

labs(title = " 燃油效率與引擎大小的關系圖 ",

subtitle = " 兩座車 ( 跑車 ) 因重量小而符合預期 ",

caption = " 數據來自 fueleconomy.gov")

p

標題若要居中,采用theme圖層設置。

p + theme(plot.title = element_text(hjust = 0.5),

plot.subtitle = element_text(hjust = 0.5))

3.6 設置color、fill顏色

數據的某個維度信息可以通過顏色來表示。

可以直接使用顏色值,建議使用RColorBrewer(調色板)或者colorspace包。

1)連續(xù)變量

- 用scale_color_gradient()設置二色漸變色。

# 連續(xù)變量

# 圖1 scale_color_gradient()函數

ggplot(mpg, aes(displ, hwy, color = hwy)) +

geom_point() +

scale_color_gradient(low = "green", high = "red")

- 用scale_color_distiller()設置調色板中的顏色

# 圖2 scale_color_distiller()函數

ggplot(mpg, aes(displ, hwy, color = hwy)) +

geom_point() +

scale_color_distiller(palette = "Set1")

2)離散變量

- 用scale_color_manual()手動設置顏色,還可以修改圖例及其標簽信息

# 離散變量

# 圖1 scale_color_manual()函數

ggplot(mpg, aes(displ, hwy, color = drv)) +

geom_point() +

scale_color_manual(" 驅動方式 ",

values = c("red", "blue", "green"),

breaks = c("4", "f", "r"))

ggplot(mpg, aes(displ, hwy, color = drv)) +

geom_point() +

scale_color_manual(" 驅動方式 ",

values = c("red", "blue", "green"),

labels = c(" 四驅 ", " 前驅 ", " 后驅 "))

-用scale_fill_brewer()調用調色板中的顏色

# 圖2 scale_fill_brewer()函數

ggplot(mpg, aes(x = class, fill = class)) +

geom_bar() +

scale_fill_brewer(palette = "Dark2")

.7 添加文字標注

ggrepel包提供了geom_label_repel()函數或者geom_text_repel()函數,為圖形添加文字標注。

操作步驟:

第一步:先準備好標記點的數據

第二步:增加文字標注圖層,包括標記點的數據和標注的文字給label參數

# 設置文字標注信息

library(ggrepel)

# 選取每種車型 hwy 值最大的樣本

best_in_class - mpg %%

group_by(class) %%

slice_max(hwy, n = 1)

best_in_class %% select(class, model, hwy)

ggplot(mpg, aes(displ, hwy)) +

geom_point(aes(color = class)) +

geom_label_repel(data = best_in_class,

aes(label = model))

04

計變換、坐標系和位置調整

.1 統計變換

統計變換是構建新的統計量而畫圖。

例如,條形圖或直方圖,是對數據分組的頻數做畫圖;平滑曲線是對數據擬合模型的預測值畫圖。

gplot2可以把統計變換直接融入畫圖中,不必先在對數據做統計變換后再畫圖。

gplot2提供30多種統計,均以stats_xxx()的方式命名。

1)可在幾何對象中直接使用的統計變換,直接使用幾何對象就可以了。

能在幾何對象創(chuàng)建的,而需要單獨使用。

mpg數據集為例。

stat_summary()做統計繪圖并匯總。

# 圖1 stat_summary()做統計繪圖并匯總

p - ggplot(mpg, aes(x = class, y = hwy)) +

geom_violin(trim = FALSE, alpha = 0.5, color = "green")

p

p + stat_summary(fun = mean,

fun.min = function (x) {mean(x) - sd(x)},

fun.max = function (x) {mean(x) + sd(x)},

geom = "pointrange",

color = "red")

tat_smooth()添加光滑曲線,與geom_smooth()相同。

參數method設置平滑曲線的擬合方法,如lm線性回歸、glm廣義線性回歸、loess多項式回歸、gam廣義加法模型(mgcv包)、rlm穩(wěn)健回歸(MASS包)等。

參數formula指定平滑曲線方程,如y ~ x, y ~ poly(x, 2), y ~ log(x)等。

參數se設置是否繪制置信區(qū)間。

# 圖2 stat_smooth()添加平滑曲線

ggplot(mpg, aes(displ, hwy)) +

geom_point() +

stat_smooth(method = "lm",

formula = y ~ splines::bs(x, 3),

se = FALSE)

ggplot(mpg, aes(displ, hwy)) +

geom_point() +

geom_smooth(method = "lm",

formula = y ~ splines::bs(x, 3),

se = FALSE)

4.2 坐標系

ggplot2默認是直角坐標系。

- coord_cartesian()

常用的其它坐標系:

以mpg數據集為例,坐標軸翻轉。

# 圖1 坐標軸翻轉coord_flip()

p - ggplot(mpg, aes(class, hwy)) +

geom_boxplot()

p

p + coord_flip()

直角坐標下條形圖轉換為極坐標下玫瑰圖。

# 圖2 直角坐標條形圖--極坐標玫瑰圖

p - ggplot(mpg, aes(class, fill = drv)) +

geom_bar()

p

p + coord_polar()

4.3 位置調整

條形圖的位置調整

# 圖1:條形圖條形位置調整

ggplot(mpg, aes(class, fill = drv)) +

geom_bar()

ggplot(mpg, aes(class, fill = drv)) +

geom_bar(position = "dodge")

ggplot(mpg, aes(class, fill = drv)) +

geom_bar(position = position_dodge(preserve = "single"))

散點圖的散點位置調整

# 圖1:散點圖的散點位置調整

ggplot(mpg, aes(displ, hwy)) +

geom_point()

ggplot(mpg, aes(displ, hwy)) +

geom_point(position = "jitter")

用patchwork包排布多個圖形

library(patchwork)

p1 - ggplot(mpg, aes(displ, hwy)) +

geom_point()

p2 - ggplot(mpg, aes(drv, displ)) +

geom_boxplot()

p3 - ggplot(mpg, aes(drv)) +

geom_bar()

p1 | (p2 / p3)

p1 | p2 | p3

p1 / p2 / p3

p1 / (p2 | p3)

05

分面

利用分類變量把圖形分成若干“子圖”(面),實際上就是對數據分組后再畫圖,屬于數據分析里面細分和下鉆的思想。

5.1 用facet_wrap()函數

封裝分面,先生成一維的面板系列,再封裝到二維中。

語法形式:~ 分類變量 或者 ~ 分類變量1 + 分類變量2

參數scales設置是否共用坐標刻度,fixed 默認 共用, free 不共用,還可以額通過free_x,free_y單獨設置。


文章名稱:r語言如何go畫圖 r語言繪制圖
標題鏈接:http://weahome.cn/article/ddgocgi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部