2015-04-23 2 views
1

Это не дубликат, так как здесь не применяются никакие методы в этом предполагаемом дубликате. Ни одно из них не привело к тому, что предупреждение исчезло.Предупреждения о недопустимости в scale_x_datetime

На самом деле я получил ответ здесь, из Конрада ниже - используйте suppressMessages. В ссылке, которая утверждается как возможный дубликат, они предлагают suppressWarnings, что не работает.


После наконец выяснить, как получить R использовать свой часовой пояс на оси ggplot даты правильно (найдено scale_x_datetime в посте здесь, прежде чем он использовал мой местный часовой пояс, даже если данные были временная зона установлена ​​уже) , но теперь он жалуется с предупреждением:

Scale for 'x' is already present. Adding another scale for 'x', which will replace the existing scale. 

Это раздражает, потому что я должен сделать это много, и не хочу, чтобы в привычке игнорировать все предупреждения. Как я могу отключить это? Очевидно, я попробовал suppressWarnings (с и без печати) и options(warn=-1).

  • R-версия 3.1.3
  • ggplot2_1.0.1
  • scales_0.2.4

    library(lubridate,quietly=T,warn.conflicts=T) 
    library(ggplot2,quietly=T,warn.conflicts=T) 
    library(scales,quietly=T,warn.conflicts=T) 
    
    
    sclip.time <- ymd_hms("2014-06-16 00:00:00",tz="US/Pacific") 
    eclip.time <- ymd_hms("2014-06-17 23:59:59",tz="US/Pacific") 
    
    sdata.time <- ymd_hms("2014-06-16 00:00:00",tz="US/Pacific") 
    edata.time <- ymd_hms("2014-06-17 23:59:59",tz="US/Pacific") 
    
    
    xdata <- seq(sdata.time,edata.time,length.out=100) 
    xfrac <- seq(0,4*3.1416,length.out=100) 
    ydata <- pmax(0.25,sin(xfrac)) 
    ydata <- sin(xfrac) 
    ddf <- data.frame(x=xdata,y=ydata) 
    
    date_format_tz <- function(format = "%Y-%m-%d", tz = "UTC") { 
        function(x) format(x, format, tz=tz) 
    } 
    
    options(warn=-1) 
    
    suppressWarnings(
    ggplot(ddf) + 
        geom_line(aes(x,y),col="blue") + 
        geom_vline(xintercept=as.numeric(sclip.time),color="darkred") + 
        geom_vline(xintercept=as.numeric(eclip.time),color="darkgreen") + 
        xlim(sclip.time,edata.time) + 
        scale_x_datetime( breaks = date_breaks("1 day"), 
            labels = date_format_tz("%Y-%m-%d %H:%M", tz="US/Pacific")) 
    ) 
    

    enter image description here

+0

Я думаю, что это поведение по умолчанию, и это сообщение не может быть подавленным. –

+0

Невозможно подавить предупреждение? –

+0

Нет, это конкретное сообщение. –

ответ

6

Вы должны использовать Сочетание suppressMessages и print, как в приведенном ниже фрагменте кода:

suppressMessages(print(
    ggplot(ddf) + 
    geom_line(aes(x,y),col="blue") + 
    geom_vline(xintercept=as.numeric(sclip.time),color="darkred") + 
    geom_vline(xintercept=as.numeric(eclip.time),color="darkgreen") + 
    xlim(sclip.time,edata.time) + 
    scale_x_datetime( breaks = date_breaks("1 day"), 
         labels = date_format_tz("%Y-%m-%d %H:%M", tz="US/Pacific")) 
)) 
+0

Пробовал, что, не работал. Попробовал снова, чтобы не быть уверенным. Все еще не сработало. –

+0

@MikeWise, очень странно Я попробовал код, и он [работает отлично] (http://pastebin.com/QhszRDWL). – Konrad

+0

У меня все еще есть предупреждение. Хотелось бы узнать, как вы избавились от него. –

1

Путь вы можете получить то, что вы хотите использовать функцию «попробовать», с опцией немого = T:

try(silent=T, [R-script]) 

It Как правило, это плохая идея сделать это таким образом, потому что вы становитесь слепыми к ошибкам, которые могут возникнуть, но если вы действительно уверены в том, что делаете.

Смежные вопросы