2017-09-01 1 views
0

現在、Rマークダウン文書をhtml(またはpdf)に編み込めて、特定のchunckで複数のプロットを生成しています。 chunckオプションのfig.cap引数でキャプションを、プロット数と同じ長さのベクトルで指定します。ただし、これが機能するには、messageTRUEでなければなりません。 問題は、chucnkの関数によってggplot2オブジェクトが生成されたときに開始し、viridis::scale_fill_viridisで新しい塗りを適用したいとします。これは問題ありませんが、必然的に、ggplot2オブジェクトに塗りつぶしが既に適用されており、viridisがそれを置き換えるというメッセージ/警告が必然的にスローされます(Scale for 'fill' is already present. Adding another scale for 'fill', which will replace the existing scale)。私はこれを私のmarkdown htmlの出力に取り入れたくありません。 suppressMessagesを使用すると、明らかにhtml(およびpdf!)キャプションも表示されなくなります。 私の質問は:は、このメッセージが生成されないように既存のスケール属性を「設定解除する」方法です?私の唯一の他の選択肢は、最初にオブジェクトを生成したコードに飛び込むことです。または:カントリーオプションmessages=Fの場合、knitrがキャプションを保持する方法はありますか?ggplot2の既存のscale_fill_discreteの設定を解除するか、新しいスケールのメッセージを表示しない

種類について、

FM

最小の実施例は、Rマークダウン文書に次のコードのようになります。

--- 
title: "SOtest" 
author: "FM Kerckhof" 
date: "1/9/2017" 
output: html_document 
--- 

```{r setup, include=FALSE} 
library(ggplot2) 
library(ggthemes) 
library(viridis) 
knitr::opts_chunk$set(echo = TRUE) 
#### custom function #### 
creategg <- function(x,plot=FALSE) 
{ 
    datnam <- names(x) 
    p <- ggplot(data=x,aes(x=x[,datnam[1]], 
         y=x[,datnam[2]], 
         fill=factor(x[,datnam[ncol(x)]]))) + 
       geom_bar(stat="identity") + 
       scale_fill_gdocs() 
    if(plot==TRUE){ 
    print(p) 
    } 
    reslist <- list(inputdata=x,ggplotobj=p) 
} 
``` 

## Lorem ipsum 

Actual report 

```{r iriscars, fig.cap=c("plot with default fill","same plot with viridis fill"), echo=FALSE} 
a <- creategg(iris,plot=TRUE) 
a$ggplotobj + scale_fill_viridis(discrete=TRUE) 
``` 

関連する場合、私のsession_info()が出力される。

Session info ------------------------------------------------------------------------------------------- 
setting value      
version R version 3.4.1 (2017-06-30) 
system x86_64, linux-gnu   
ui  RStudio (1.0.153)   
language (EN)       
collate en_US.UTF-8     
tz  Europe/Brussels    
date  2017-09-01     

Packages ----------------------------------------------------------------------------------------------- 
package  * version date  source   
ade4   1.7-8 2017-08-09 CRAN (R 3.4.1) 
ape   4.1  2017-02-14 CRAN (R 3.3.2) 
assertthat * 0.2.0 2017-04-11 CRAN (R 3.3.3) 
backports  1.1.0 2017-05-22 CRAN (R 3.4.0) 
base   * 3.4.1 2017-07-08 local   
bindr   0.1  2016-11-13 CRAN (R 3.4.0) 
bindrcpp  0.2  2017-06-17 CRAN (R 3.4.0) 
Biobase  * 2.36.2 2017-05-09 Bioconductor 
BiocGenerics * 0.22.0 2017-05-04 Bioconductor 
biomformat  1.4.0 2017-05-04 Bioconductor 
Biostrings  2.44.2 2017-07-24 Bioconductor 
bitops   1.0-6 2013-08-17 CRAN (R 3.2.4) 
caTools  1.17.1 2014-09-10 CRAN (R 3.2.4) 
cluster  2.0.6 2017-03-16 CRAN (R 3.4.0) 
codetools  0.2-15 2016-10-05 CRAN (R 3.3.1) 
colorspace  1.3-2 2016-12-14 CRAN (R 3.3.2) 
compiler  3.4.1 2017-07-08 local   
data.table  1.10.4 2017-02-01 CRAN (R 3.3.2) 
datasets  * 3.4.1 2017-07-08 local   
devtools  * 1.13.3 2017-08-02 CRAN (R 3.4.1) 
digest   0.6.12 2017-01-27 CRAN (R 3.3.2) 
dplyr  * 0.7.2 2017-07-20 CRAN (R 3.4.1) 
evaluate  0.10.1 2017-06-24 CRAN (R 3.4.0) 
extrafont * 0.17 2014-12-08 CRAN (R 3.4.0) 
extrafontdb 1.0  2012-06-11 CRAN (R 3.4.0) 
foreach  1.4.3 2015-10-13 CRAN (R 3.2.4) 
gdata   2.18.0 2017-06-06 CRAN (R 3.4.0) 
ggplot2  * 2.2.1 2016-12-30 CRAN (R 3.3.2) 
ggthemes  * 3.4.0 2017-02-19 CRAN (R 3.3.2) 
glue   1.1.1 2017-06-21 CRAN (R 3.4.0) 
gplots  * 3.0.1 2016-03-30 CRAN (R 3.2.4) 
graphics  * 3.4.1 2017-07-08 local   
grDevices * 3.4.1 2017-07-08 local   
grid   3.4.1 2017-07-08 local   
gridExtra  2.2.1 2016-02-29 CRAN (R 3.3.1) 
gtable   0.2.0 2016-02-26 CRAN (R 3.2.4) 
gtools  * 3.5.0 2015-05-29 CRAN (R 3.2.4) 
htmltools  0.3.6 2017-04-28 CRAN (R 3.4.0) 
igraph   1.1.2 2017-07-21 CRAN (R 3.4.1) 
IRanges  2.10.2 2017-06-01 Bioconductor 
iterators  1.0.8 2015-10-13 CRAN (R 3.2.4) 
jsonlite  1.5  2017-06-01 CRAN (R 3.4.0) 
KernSmooth  2.23-15 2015-06-29 CRAN (R 3.4.0) 
knitr   1.17 2017-08-10 CRAN (R 3.4.1) 
labeling  0.3  2014-08-23 CRAN (R 3.2.4) 
lattice  * 0.20-35 2017-03-25 CRAN (R 3.3.3) 
lazyeval  0.2.0 2016-06-12 CRAN (R 3.3.1) 
magrittr  1.5  2014-11-22 CRAN (R 3.2.4) 
MASS   7.3-47 2017-04-21 CRAN (R 3.4.0) 
Matrix   1.2-11 2017-08-16 CRAN (R 3.4.1) 
memoise  1.1.0 2017-04-21 CRAN (R 3.4.0) 
methods  * 3.4.1 2017-07-08 local   
mgcv   1.8-19 2017-08-29 CRAN (R 3.4.1) 
multtest  2.32.0 2017-05-04 Bioconductor 
munsell  0.4.3 2016-02-13 CRAN (R 3.2.4) 
nlme   3.1-131 2017-02-06 CRAN (R 3.3.2) 
parallel  * 3.4.1 2017-07-08 local   
permute  * 0.9-4 2016-09-09 CRAN (R 3.3.1) 
phyloseq  1.20.0 2017-05-04 Bioconductor 
pkgconfig  2.0.1 2017-03-21 CRAN (R 3.4.0) 
plyr   * 1.8.4 2016-06-08 CRAN (R 3.3.1) 
R6    2.2.2 2017-06-17 CRAN (R 3.4.0) 
Rcpp   0.12.12 2017-07-15 CRAN (R 3.4.1) 
reshape2  * 1.4.2 2016-10-22 CRAN (R 3.3.2) 
rhdf5   2.20.0 2017-05-04 Bioconductor 
rlang   0.1.2 2017-08-09 CRAN (R 3.4.1) 
rmarkdown  1.6  2017-06-15 CRAN (R 3.4.0) 
rprojroot  1.2  2017-01-16 CRAN (R 3.3.2) 
Rttf2pt1  1.3.4 2016-05-19 CRAN (R 3.4.0) 
S4Vectors  0.14.3 2017-06-06 Bioconductor 
scales   0.5.0 2017-08-24 CRAN (R 3.4.1) 
splines  3.4.1 2017-07-08 local   
stats  * 3.4.1 2017-07-08 local   
stats4   3.4.1 2017-07-08 local   
stringi  1.1.5 2017-04-07 CRAN (R 3.3.3) 
stringr  1.2.0 2017-02-18 CRAN (R 3.3.2) 
survival  2.41-3 2017-04-04 CRAN (R 3.3.3) 
tibble   1.3.4 2017-08-22 CRAN (R 3.4.1) 
tools   3.4.1 2017-07-08 local   
utils  * 3.4.1 2017-07-08 local   
vegan  * 2.4-4 2017-08-24 CRAN (R 3.4.1) 
viridis  * 0.4.0 2017-03-27 CRAN (R 3.4.1) 
viridisLite * 0.2.0 2017-03-24 CRAN (R 3.3.3) 
withr   2.0.0 2017-07-28 CRAN (R 3.4.1) 
XVector  0.16.0 2017-05-04 Bioconductor 
yaml   2.1.14 2016-11-12 CRAN (R 3.3.2) 
zlibbioc  1.22.0 2017-05-04 Bioconductor 
+1

[最小限の作業例](https://stackoverflow.com/help/mcve)を提供してください、ありがとう! – jaySf

+0

@ jaySニットする必要がある完全なRマークダウン文書のMWEをどのように提供できるかはわかりませんが、試してみましょう。 –

答えて

1

ggplotオブジェクトをご覧ください。p

str(p)

サブ構造の多くがあります。 p$scalesをご覧ください。 ScalesListです。次はあなたを助けるかもしれない:

i <- which(sapply(p$scales$scales, function(x) 'fill' %in% x$aesthetics)) p$scales$scales[[i]] <- NULL

+0

これはとてもうまく動作します! ggplot2オブジェクトは非常に複雑です。私の道を見つけるのを手伝ってくれてありがとう。 –

関連する問題