2016-12-12 103 views
10

我最近安裝了cowplot包。但是,這樣做後,我注意到我的ggplots錯過了他們的背景和網格線theme_grey()Cowplot使ggplot2主題消失/如何看當前ggplot2主題,並恢復默認?

enter image description here

創建的每個上述地塊的代碼是:

result_df %>% 
    ggplot(aes_string(x = 'p', y = 'r')) + 
    # theme_grey() + # uncomment this line to produce plot on right 
    geom_point(aes(group = c), size = 0.5) + 
    geom_line(aes(group = c), size = 0.2, linetype = 'dotted') + 
    theme(axis.text.x=element_text(angle = 90, hjust = 1, vjust = 0.5)) + 
    facet_grid(b ~ e, scales = "free_y") + 
    scale_x_continuous(breaks = seq(0, 10, 2)) 

沒有顯式調用+ theme_grey(),我得到左邊的情節。

這裏發生了什麼?我認爲theme_grey()是默認值。我如何看到我的默認主題是?

這裏是我的sessionInfo()片段:

R version 3.3.2 (2016-10-31) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] ggthemes_3.3.0 cowplot_0.7.0  RPostgreSQL_0.4-1 DBI_0.5-1   knitr_1.15.1  dirmult_0.1.3-4 dplyr_0.5.0  
[8] purrr_0.2.2  readr_1.0.0  tidyr_0.6.0  tibble_1.2  ggplot2_2.2.0  tidyverse_1.0.0 

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.8  magrittr_1.5  munsell_0.4.3 colorspace_1.3-1 R6_2.2.0   stringr_1.1.0 plyr_1.8.4  tools_3.3.2  
[9] grid_3.3.2  gtable_0.2.0  lazyeval_0.2.0 assertthat_0.1 crayon_1.3.2  reshape2_1.4.2 rsconnect_0.6 testthat_1.0.2 
[17] labeling_0.3  stringi_1.1.2 scales_0.4.1  
+6

cowplot認爲這是一個好主意,改變默認的主題附着 – baptiste

+0

感謝的時候,非常有幫助。那麼,我如何查看默認主題並將其更改回來? :) – Alex

+1

set_theme(theme_grey())? –

回答

14

您可以使用theme_get()看到目前的「默認」的主題。

您可以使用theme_set()更改「默認」主題。

主題設置不會執行會話。

通常情況下,您的默認設置爲theme_grey,但cowplot認爲有必要將其更改爲theme_cowplot。我真的希望它沒有。

您可以使用::符號來完全避免這種情況,也可以加載包爲:

library(cowplot) 
theme_set(theme_grey()) 
+3

我聽到你,我實際上想把所有的plot_grid和ggdraw代碼分離成一個單獨的包,不會觸及主題。 cowplot最初是關於這個主題的,並且從那以後它開始做更多的事情。 –

+0

這很有道理!只是不適合我們使用該軟件包進行其他事情的外人。 :) – Axeman

+1

其實,最近我遇到越來越多的情況,我希望自己的主題沒有改變。就像,我正在展示一些東西,但是我已經加載了cowplot,所以情節看起來與預期不同。將所有繪圖代碼移動到單獨的包中是正確的方法。這樣,cowplot不會改變行爲,並且人們可以簡單地在他們不想要主題時開始加載其他包。一天。 –