道友,来Rstudio里面看动画了
生活随笔
收集整理的這篇文章主要介紹了
道友,来Rstudio里面看动画了
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
gganimate |讓你的圖動起來!
這是ggplot中十分可愛的一個擴增包,目的只有一個,就是讓你的圖動起來!就是醬紫!
gganimate擴展了GGPLOT2實現的圖形語法,包括動畫描述。它通過提供一系列新的語法類來實現這一點,這些類可以添加到繪圖對象中,以便自定義它應該如何隨時間變化。
下面是他的參數:
transition_*()定義了數據應該如何展開以及它與時間的關系。
view_*()定義位置比例應如何沿動畫更改。
shadow_*()定義如何在給定的時間點呈現來自其他時間點的數據。
enter_*()/ exit_*()定義新數據應如何顯示以及舊數據在動畫過程中應如何消失。
ease_aes()定義了在過渡期間應該如何進行過渡。
舉個栗子!
#安裝輔助包,該包有兩個版本,已經更新為最新版本,老版本在未來將不再支持。install.packages("gganimate")# 安裝開發版 # install.packages('devtools') # devtools::install_github('thomasp85/gganimate') library(ggplot2) library(gganimate)ggplot(mtcars, aes(factor(cyl), mpg)) +geom_boxplot() + geom_point() +# Here comes the gganimate codetransition_states(gear,transition_length = 2,state_length = 1) +enter_fade() +exit_shrink() +ease_aes('sine-in-out')加載時間是比較長的,需要耐心等待哈!
又一個例子
首先查看一下數據格式吧,Gapminder是關于預期壽命,人均國內生產總值和國家人口的數據摘錄。
library(gapminder) head(gapminder)#我們看一下數據格式 ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) + #點的大小和顏色分別由pop和country決定;geom_point(alpha = 0.7, show.legend = FALSE) +scale_colour_manual(values = country_colors) + #進行數值之間的映射scale_size(range = c(2, 12)) + #設置繪圖符號大小scale_x_log10() + #連續數據位置的標準化facet_wrap(~continent) + #按照continent進行分類# Here comes the gganimate specific bitslabs(title = 'Year: {frame_time}', x = 'GDP per capita', y = 'life expectancy') +transition_time(year) +ease_aes('linear')#指數據變化的狀態,線性發展比較緩慢哈哈哈,現在我們以腫瘤數據為例進行演示一下:
我編了一組測試數據,其中將腫瘤分為I,II,III型,IV型為控制,然后分別顯示了再不同樣本中不同腫瘤分型下的部分基因的表達情況。
library(ggplot2) library(gganimate) #首先我們進行數據的讀入data <- "subgroup,sample,gene,expression I,Tumor,p53,12.725952 II,Tumor,p53,11.914176 III,Tumor,p53,12.315768 IV,Normal,p53,12.978894 I,Tumor,p53,11.93924 II,Tumor,p53,12.262185 III,Tumor,p53,11.538924 IV,Normal,p53,12.016589 I,Tumor,p53,12.302574 II,Tumor,p53,11.939233 III,Tumor,p53,12.803992 IV,Normal,p53,10.674506 I,Tumor,p53,12.569142 II,Tumor,p53,12.088496 III,Tumor,p53,9.971951 IV,Normal,p53,13.008554 I,Tumor,p53,12.804154 II,Tumor,p53,11.847107 III,Tumor,p53,12.081261 IV,Normal,p53,12.158431 I,Tumor,p53,11.096693 II,Tumor,p53,12.655811 III,Tumor,p53,11.509067 IV,Normal,p53,12.523573 I,Tumor,p53,11.3554 II,Tumor,p53,11.560566 III,Tumor,p53,10.969046 IV,Normal,p53,11.169892 I,Tumor,p53,12.884054 II,Tumor,p53,12.284268 III,Tumor,her2,9.575523 IV,Normal,her2,12.409381 I,Tumor,her2,12.114364 II,Tumor,her2,11.493997 III,Tumor,her2,10.987106 IV,Normal,her2,11.943991 I,Tumor,her2,11.171378 II,Tumor,her2,13.120248 III,Tumor,her2,12.628872 IV,Normal,her2,11.91914 I,Tumor,her2,12.36504 II,Tumor,her2,12.707354 III,Tumor,her2,12.54517 IV,Normal,her2,12.199749 I,Tumor,her2,13.184496 II,Tumor,her2,12.640412 III,Tumor,her2,12.716897 IV,Normal,her2,13.359091 I,Tumor,her2,11.760945 II,Tumor,her2,11.406367 III,Tumor,her2,11.984382 IV,Normal,her2,12.254977 I,Tumor,her2,11.579763 II,Tumor,her2,11.983042 III,Tumor,her2,12.566317 IV,Normal,her2,10.869331 I,Tumor,her2,10.910963 II,Tumor,her2,11.948207 III,Tumor,myc,12.363072 IV,Normal,myc,12.755182 I,Tumor,myc,11.922223 II,Tumor,myc,9.618839 III,Tumor,myc,12.693868 IV,Normal,myc,13.40685 I,Tumor,myc,11.871609 II,Tumor,myc,11.783704 III,Tumor,myc,12.485053 IV,Normal,myc,12.669123 I,Tumor,myc,11.653691 II,Tumor,myc,11.675768 III,Tumor,myc,12.744605 IV,Normal,myc,12.911619 I,Tumor,myc,12.008307 II,Tumor,myc,11.838161 III,Tumor,myc,12.590989 IV,Normal,myc,11.680278 I,Tumor,myc,11.719241 II,Tumor,myc,10.156746 III,Tumor,myc,11.84406 IV,Normal,myc,12.975393 I,Tumor,myc,10.963332 II,Tumor,myc,12.338216 III,Tumor,myc,12.030859 IV,Normal,myc,11.119114 I,Tumor,myc,12.661349 II,Tumor,myc,13.168166 III,Tumor,myc,11.707595 IV,Normal,myc,12.06719 I,Tumor,myc,12.463962 II,Tumor,myc,12.288819 III,Tumor,myc,12.036757 IV,Normal,myc,12.98055 I,Tumor,myc,11.343075 II,Tumor,myc,12.565481 III,Tumor,myc,12.279996 IV,Normal,myc,12.965189 I,Tumor,myc,12.946155 II,Tumor,myc,11.688462 III,Tumor,sox4,11.944477 IV,Normal,sox4,12.128177 I,Tumor,sox4,11.116105 II,Tumor,sox4,11.148871 III,Tumor,sox4,13.139244 IV,Normal,sox4,10.043207 I,Tumor,sox4,12.043914 II,Tumor,sox4,9.990576 III,Tumor,sox4,11.624263 IV,Normal,sox4,11.647402 I,Tumor,sox4,12.502176 II,Tumor,sox4,12.291812 III,Tumor,sox4,11.421913 IV,Normal,sox4,12.282511 I,Tumor,sox4,12.511991 II,Tumor,sox4,12.285322 III,Tumor,sox4,11.7884 IV,Normal,sox4,13.747552 I,Tumor,sox4,11.212993 II,Tumor,sox4,12.936845 III,Tumor,sox4,12.442484 IV,Normal,sox4,10.324288 I,Tumor,sox4,12.436421 II,Tumor,sox4,11.923122 III,Tumor,sox4,12.831474 IV,Normal,sox4,12.271537 I,Tumor,sox4,12.208086 II,Tumor,sox4,11.830799 III,Tumor,sox4,12.410238 IV,Normal,sox4,12.13912 I,Tumor,sox4,12.47"test <- read.csv(text=data,header=T) head(test) library(ggplot2) ggplot(test,aes(x=subgroup,y=expression,fill=subgroup))+geom_boxplot()+geom_jitter()+theme_bw() #按照subgroup進行分型,并畫出箱式圖同樣對不同基因在各組中的分布情況進行描述:
library(ggplot2) p <- ggplot(test,aes(x=subgroup,y=expression,fill=subgroup))+geom_boxplot()+geom_jitter()+theme_bw() p +facet_grid(.~gene)#按照gene對各個小組進行分類 library(ggplot2) library(gganimate) p <- ggplot(test,aes(x=subgroup,y=expression,fill=subgroup))+geom_boxplot()+geom_jitter()+theme_bw() p +transition_states(gene, state_length = 0)+labs(title = "{closest_state} expression")想不想讓你的數據動來動去,哈哈哈,不妨試試這個[R包!
如果想學習更多有關該R包的情況,可以點擊:https://github.com/thomasp85/gganimate。|||||作者:清華大學醫學院苑曉梅
總結
以上是生活随笔為你收集整理的道友,来Rstudio里面看动画了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图示不写程序如何根据dbSNP rs号批
- 下一篇: 生信宝典文章集锦