R語言可視化(二):折線圖繪制

02.折線圖繪制


清除當(dāng)前環(huán)境中的變量

rm(list=ls())

設(shè)置工作目錄

setwd("C:/Users/Dell/Desktop/R_Plots/02lineplot/")

base plot函數(shù)繪制普通折線圖

# 讀取示例數(shù)據(jù)
data <- read.table("demo1_lineplot.txt", header = T, check.names = F)
# 查看數(shù)據(jù)
head(data)
##   x   y1   y2   y3
## 1 1  7.0 -0.2 -0.9
## 2 2  6.9  0.8  0.6
## 3 3  9.5  5.7  3.5
## 4 4 14.5 11.3  8.4
## 5 5 18.2 17.0 13.5
## 6 6 21.5 22.0 17.0

dim(data)
## [1] 12  4

attach(data)
plot(x, y1, type = "b", pch = 15, lty = 1, col = "red", xlab = "時(shí)間", ylab = "反應(yīng)強(qiáng)度", ylim = c(-1,30))
lines(x, y2, type = "b", pch = 16, lty = 2, col = "blue")
lines(x, y3, type = "b", pch = 17, lty = 3, col = "purple")
legend("topleft", inset = 0.02, title = "樣品", c("y1","y2","y3"), 
       lty = c(1,2,3), pch = c(15,16,17), col = c("red","blue","purple"),
       bg = "gray")
detach(data)
image.png

ggplot2包繪制帶誤差棒的折線圖

library(ggplot2)
# 讀取示例數(shù)據(jù)
data2 <- read.table("demo2_lineplot.txt", header = T, row.names = 3, sep="\t", check.names = F)
data2$Stage <- factor(data2$Stage,levels = c("0 min","10 min","20 min","30 min","45 min","60 min","90 min","120 min"))
# 查看數(shù)據(jù)
head(data2)
##          Stage GeneSymbol Expression Log10(Expression)
## 0min_1   0 min       EGT2   1207.380          3.081844
## 0min_2   0 min       EGT2   1209.970          3.082775
## 0min_3   0 min       EGT2   1089.770          3.037335
## 10min_1 10 min       EGT2    801.201          2.903741
## 10min_2 10 min       EGT2    704.513          2.847889
## 10min_3 10 min       EGT2    597.385          2.776254

#+++++++++++++++++++++++++
# Function to calculate the mean and the standard deviation
# for each group
#+++++++++++++++++++++++++
# data : a data frame
# varname : the name of a column containing the variable
#to be summariezed
# groupnames : vector of column names to be used as
# grouping variables
# 定義函數(shù)計(jì)算平均值和標(biāo)準(zhǔn)差
data_summary <- function(data, varname, groupnames){
  require(plyr)
  summary_func <- function(x, col){
    c(mean = mean(x[[col]], na.rm=TRUE),
      sd = sd(x[[col]], na.rm=TRUE))
  }
  data_sum <- ddply(data, groupnames, .fun=summary_func, varname)
  data_sum <- rename(data_sum, c("mean" = varname))
  return(data_sum)
}

data2 <- data_summary(data2, varname="Expression", 
                      groupnames=c("Stage"))
head(data2)
##    Stage Expression        sd
## 1  0 min  1169.0400  68.66205
## 2 10 min   701.0330 101.95255
## 3 20 min   701.8853 196.06879
## 4 30 min   682.8983 186.25895
## 5 45 min   788.3107  72.94692
## 6 60 min   749.8397 261.03729

# Standard deviation of the mean
ggplot(data2, aes(x=Stage, y=Expression, group=1, color=Stage)) + 
      geom_errorbar(aes(ymin=Expression-sd, ymax=Expression+sd), width=.1) +
      geom_line() + geom_point()+
      scale_color_brewer(palette="Paired")+theme_bw()
image.png

ggplot2包繪制聚類趨勢(shì)折線圖

# 讀取示例數(shù)據(jù)
data3 <- read.table("demo3_lineplot.txt",header = T,check.names = F)
# 查看數(shù)據(jù)
head(data3)
##     Gene   Stage1    Stage2    Stage3    Stage4    Stage5     Stage6
## 1 Gene01 1.155864 0.9021231 -1.085794 -1.265632 0.2614499 0.03198916
## 2 Gene02 1.145877 0.8973008 -1.095785 -1.266790 0.2721922 0.04720437
## 3 Gene03 1.125560 0.8994570 -1.124195 -1.255849 0.2777603 0.07726622
## 4 Gene04 1.114566 0.8681610 -1.115066 -1.283721 0.3224320 0.09362759
## 5 Gene05 1.129178 0.8700930 -1.097511 -1.288186 0.3142035 0.07222275
## 6 Gene06 1.138877 0.8809866 -1.092992 -1.281036 0.2962881 0.05787733
##    Group
## 1 group1
## 2 group1
## 3 group1
## 4 group1
## 5 group1
## 6 group1

library(reshape2)
# 將寬數(shù)據(jù)格式轉(zhuǎn)換為長(zhǎng)數(shù)據(jù)格式
data3 = melt(data3)
## Using Gene, Group as id variables

head(data3)
##     Gene  Group variable    value
## 1 Gene01 group1   Stage1 1.155864
## 2 Gene02 group1   Stage1 1.145877
## 3 Gene03 group1   Stage1 1.125560
## 4 Gene04 group1   Stage1 1.114566
## 5 Gene05 group1   Stage1 1.129178
## 6 Gene06 group1   Stage1 1.138877

names(data3) <- c("Gene","Group","Stage","Expression")

ggplot(data3,aes(x=Stage, y=Expression, group=Gene)) + geom_line(color="gray90",size=0.8) + 
      geom_hline(yintercept =0,linetype=2) +
      stat_summary(aes(group=1),fun.y=mean, geom="line", size=1.2, color="#c51b7d") + 
      facet_wrap(.~Group) + theme_bw() + 
      theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
            axis.text = element_text(size=8, face = "bold"),
            strip.text = element_text(size = 10, face = "bold"))
image.png
sessionInfo()
## R version 3.6.0 (2019-04-26)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 18363)
## 
## Matrix products: default
## 
## locale:
## [1] LC_COLLATE=Chinese (Simplified)_China.936 
## [2] LC_CTYPE=Chinese (Simplified)_China.936   
## [3] LC_MONETARY=Chinese (Simplified)_China.936
## [4] LC_NUMERIC=C                              
## [5] LC_TIME=Chinese (Simplified)_China.936    
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] reshape2_1.4.3 plyr_1.8.4     ggplot2_3.2.0 
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_1.0.1         knitr_1.23         magrittr_1.5      
##  [4] tidyselect_0.2.5   munsell_0.5.0      colorspace_1.4-1  
##  [7] R6_2.4.0           rlang_0.4.0        stringr_1.4.0     
## [10] dplyr_0.8.3        tools_3.6.0        grid_3.6.0        
## [13] gtable_0.3.0       xfun_0.8           withr_2.1.2       
## [16] htmltools_0.3.6    yaml_2.2.0         lazyeval_0.2.2    
## [19] digest_0.6.20      assertthat_0.2.1   tibble_2.1.3      
## [22] crayon_1.3.4       RColorBrewer_1.1-2 purrr_0.3.2       
## [25] glue_1.3.1         evaluate_0.14      rmarkdown_1.13    
## [28] labeling_0.3       stringi_1.4.3      compiler_3.6.0    
## [31] pillar_1.4.2       scales_1.0.0       pkgconfig_2.0.2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末反砌,一起剝皮案震驚了整個(gè)濱河市侈百,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖援制,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赠摇,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡区拳,警方通過查閱死者的電腦和手機(jī)拘领,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來樱调,“玉大人约素,你說我怎么就攤上這事“柿瑁” “怎么了圣猎?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)乞而。 經(jīng)常有香客問我送悔,道長(zhǎng),這世上最難降的妖魔是什么晦闰? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任放祟,我火速辦了婚禮,結(jié)果婚禮上呻右,老公的妹妹穿的比我還像新娘跪妥。我一直安慰自己,他們只是感情好声滥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布眉撵。 她就那樣靜靜地躺著,像睡著了一般落塑。 火紅的嫁衣襯著肌膚如雪纽疟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天憾赁,我揣著相機(jī)與錄音污朽,去河邊找鬼。 笑死龙考,一個(gè)胖子當(dāng)著我的面吹牛蟆肆,可吹牛的內(nèi)容都是我干的矾睦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼炎功,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼枚冗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蛇损,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤赁温,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后淤齐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體股囊,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年床玻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毁涉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沉帮。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锈死,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出穆壕,到底是詐尸還是另有隱情待牵,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布喇勋,位于F島的核電站缨该,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏川背。R本人自食惡果不足惜贰拿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望熄云。 院中可真熱鬧膨更,春花似錦、人聲如沸缴允。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽练般。三九已至矗漾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間薄料,已是汗流浹背敞贡。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留摄职,地道東北人誊役。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓虑稼,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親势木。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蛛倦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355