您當前的位置:首頁 > 體育

R語言圖片之間的儲存和匯出

作者:由 ashu 發表于 體育時間:2022-08-29

1.圖片儲存

圖片儲存的三種方法:

1。1 基礎包作圖的儲存

1。2 ggplot系列圖(包括ggpubr)通用的簡便儲存 ggsave

1。3 eoffice包 匯出為ppt,全部元素都是可編輯模式

1.1 基礎包作圖的儲存

不需要載入任何R包

通用:三段論

(1)圖片儲存的格式及檔名:pdf("test.pdf")

png("test.png")

,支援各種合格圖片的格式,注意對應的字尾不能寫錯。

(2)作圖程式碼:

可以寫很多行程式碼。

(3)圖畫完,關閉畫板

:dev。off(),圖畫完需要終止符號。

圖畫完後,點選儲存的圖片,能開啟說明正常,不能開啟,可能程式碼出了問題。

pdf(“iris_box_ggpubr。pdf”)

boxplot(iris[,1]~iris[,5])

text(6。5,4, labels = ‘hello’)

dev。off()

##先設定儲存的格式為pdf,再畫圖,執行畫圖程式碼後,圖片儲存在工作目錄下。

1.2 ggplot系列圖(包括ggpubr)通用的簡便儲存 ggsave

##儲存直接儲存)

ggsave(“iris_box_ggpubr。png”)

#右下角出的圖,用ggsave儲存,字尾就是什麼字尾,支援很多種格式,從幫助文件裡翻

##儲存ggplot畫的圖

##賦值儲存

library(ggpubr)

p <- ggboxplot(iris, x = “Species”,

y = “Sepal。Length”,

color = “Species”,

shape = “Species”,

add = “jitter”)

ggsave(p,filename = “iris_box_ggpubr。png”)

#給圖賦值,寫儲存的名稱。

1.3 eoffice包 匯出為ppt,全部元素都是可編輯模式

library(eoffice)

library(ggpubr)

p <- ggboxplot(iris, x = “Species”,

y = “Sepal。Length”,

color = “Species”,

shape = “Species”,

add = “jitter”)

topptx(p,“iris_box_ggpubr。pptx”)

##執行完程式碼後在目錄下生成PPT檔案

字尾.pptx不能寫錯

,儲存好後,開啟PPT——點選右鍵——取消組合,看到圖片有很多可編輯元素,可以編輯橫縱座標的字型字號,圖片的顏色等做一些修飾,切忌不可造假圖片。能用程式碼解決的事情堅決用程式碼,後面需要用到ppt編輯再編輯。

2。拼圖

2.1 R包patchwork

語法簡單,完美相容ggplot2

拼圖比例設定簡單

(1)支援直接p1+p2,比任何一個包簡單

(2)複雜的佈局程式碼易讀性更強

(3)可以給子圖新增標記(例如ABCD,I,II,III,IV這樣)

(4)可以統一修改所有子圖

(5)可以將子圖的圖例移到一起,整體性特別好。

(來自生信技能樹小潔老師課件描述)

library(patchwork)

p1=ggplot(data = iris)+

geom_point(mapping = aes(x = Sepal。Length,

y = Petal。Length,

color = Species))

p2=ggplot(data = diamonds) +

geom_bar(mapping = aes(x = cut,fill=clarity))

R語言圖片之間的儲存和匯出

R包patchwork的其它介紹

https://

mp。weixin。qq。com/s/p7LL

LvzR5LPgHhuRGhYQBQ

library(ggplot2)

colnames(iris)

p1=ggplot(iris,aes(Sepal。Length,Sepal。Width))+

geom_point(aes(color=Species))#color=Species

p2=ggplot(iris,aes(Sepal。Length,Sepal。Width))+

geom_point(aes(color=Sepal。Length))#color=Sepal。Length

library(patchwork)##拼圖前一定要載入

p1+p2

##拼圖後,可以用gglpot2的儲存方式去儲存

注意的問題:

程式碼可執行卻不出圖,是因為畫板被佔用

使用程式碼:dev。off()關閉畫板,出現null device

多次執行dev。off(),到出現null device,再重新執行出圖程式碼或dev。new()

dev。off()報錯,提示關閉畫板不存在,慣著它,特例的報錯,不用管

遇到問題可以執行dev。new(),不行重啟Rstudio,再不行重啟電腦:每次重啟都會把一些被破壞的預設設定恢復到原樣。

3。畫圖合輯

3.1 小潔老師的語雀專輯

複習補充:連續型和分散型,以iris為例

library(ggplot2)

colnames(iris)

#圖一程式碼

ggplot(iris,aes(Sepal。Length,Sepal。Width))+

geom_point(aes(color=Species))#color=Species,

#圖二程式碼

ggplot(iris,aes(Sepal。Length,Sepal。Width))+

geom_point(aes(color=Sepal。Length))#color=Sepal。Length

兩者行程式碼畫出的圖,不一樣,圖一的點圖有3種顏色,圖二的圖幾乎只有一種顏色

iris$Species#是離散型資料,table(iris$Species)有三個獨立的值,互不相干的顏色

iris$Sepal。Length#就一堆數字,sort(iris$Sepal。Length),4。3連續到7。9不好分顏色

畫圖箱線圖,希望橫座標按順序排序,但是橫座標不是數字,ggplot預設的橫座標順序與自己的想象有差別,是因為有因子存在,因子有些爭議,有人認為它是資料型別,有人認為它是資料結構。

iris$Species

##最後一列有Levels,Levels是因子的關鍵詞,因子水平的意思

class(iris$Species)

#[1] “factor”

##R語言基礎比較紮實時再去完因子,不然會崩潰。

##調整橫座標會用到有序因子

畫箱線圖時,連續型的數值不能作為橫縱標,要有重複值,這個以後慢慢去理解

library(ggstatsplot)

##用這個包裡函式的一句程式碼畫出非常漂亮的小提琴圖,難點是這個包的安裝,一個個包找去z

##熱圖學習

?pheatmap

##幫助文件是最好學習熱圖的教程

3.2 資料裡有曾老師給的指令碼和html檔案

詳細介紹很多種圖的一步一步畫法

畫圖部分的擴充套件學習檔案:

基礎包畫圖500行程式碼:zz_Basic plot in R for biotrainee .R

ggplot2畫圖50個案例:top50ggplot.html

4.總結:

一般畫圖都是找別人的程式碼(R 火山圖搜尋),把自己的資料套進去,解決自己的資料與別人資料的差別,就是把自己的資料整理成與示例的資料一樣。

難點不是作圖程式碼,而是如何將自己的資料整理成示例資料的樣子。不同的圖,示例資料是不一樣的,有的是需要矩陣,有的是要資料框,有的是要數值型或是其它型別。作圖資料不可能都是統一型別。

要根據自己的R語言基礎去搞明白,比較資料,能執行成功和不能執行成功的資料差在哪裡:

資料結構

(人家的是矩陣,你的是資料框),

資料型別

(人家的是純數值型,你的裡邊夾雜一些字元型,邏輯型):用class函式,str函式,is。xx函式判斷。

行、列的組織方式、對應關係

(人家的一行是一個基因,你的一列是一個基因;人家有兩個或是多個示例資料,這兩個示例資料或是多個示例資料之間有對應關係,如兩個表達矩陣,一個表達矩陣的某個資訊有6個列,而你的資訊有8列,和另一個表達矩陣某一行對應關係):使用轉置函式t()。

(如果以上的資訊排除了,可能有以下情況)

缺失值,異常值

,重複值等

有的列名還有要求一樣,這個比較少見。

最常見要求是:資料結構,資料型別

說明

以上內容是聽

生信技能樹

小潔老師的

R語言線上課

,根據自己的理解記錄下來,小潔老師授課非常細心,對不同水平的同學都照顧到,並且補充很多技巧(拼圖最好用的包)以及注意事項。

標簽: Iris  Sepal  ##  length  species