R語言圖片之間的儲存和匯出
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包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語言線上課
,根據自己的理解記錄下來,小潔老師授課非常細心,對不同水平的同學都照顧到,並且補充很多技巧(拼圖最好用的包)以及注意事項。