График вейвлетов: изменение оси x, y и цветового графика

У меня есть код, над которым я работаю для почасового набора данных, и я хочу отобразить правильный график вейвлета, но мне трудно настроить его по своему вкусу. Я хочу изменить оси x, y и установить цветную полосу. Однако я успешно изменил ось X только тогда, когда цветная полоса не активирована. Если это так, то я не могу изменить ось X. Кроме того, я не нашел успешного способа изменить ось Y, чтобы между ними было больше значений, чем то, что генерируется автоматически. Заранее спасибо за вашу помощь

    library(biwavelet) # used for wavelets

    n <- 141696
    d <- data.frame(1:n, round(runif(n, 38, 100),2))

    # X-Axis for plotting
    TIME1 <- as.POSIXlt("2000-01-01 00:00:00 PST", format = '%Y-%m-%d %H:%M:%S')
    TIME2 <- as.POSIXlt("2016-02-29 23:00:00 PST", format = '%Y-%m-%d %H:%M:%S')
    LABELS <- seq(from = TIME1, to = TIME2, by = "3 months")
    xAxis <- seq(from = TIME1, to = TIME2, by = "hour")
    Location <-NA
    for (i in 1:length(LABELS)) { Location[i] <- which(LABELS[i] == xAxis) }
    LABELS <- format(LABELS, "%b %Y")

    # Wavelet
    WAV <- wt(d)

Это имеет правильную ось X, но не отображает цветную полосу, так как я не поместил plot.cb = TRUE на график в качестве аргумента.

    # PLOT (Has no legend but correct x-axis)
    par(oma=c(0, 0, 0, 1), mar=c(5, 4, 4, 5) + 0.1)
    plot(WAV, type="power.corr.norm", main="Bias-corrected wavelet power ", ylab="Period(hourly)", xlab="Time", lwd.sig=1, xaxt='n')
    axis(side = 1, at = Location, labels = LABELS, tick = TRUE, las = 2)

Нет цветовой полосы, правильная ось X

Это отображает цветную полосу, но не имеет правильной маркировки оси X.

    # PLOT (Has legend but no x-axis)
    par(oma=c(0, 0, 0, 1), mar=c(5, 4, 4, 5) + 0.1)
    plot(WAV, type="power.corr.norm", main="Bias-corrected wavelet power ", ylab="Period(hourly)", xlab="Time", lwd.sig=1, xaxt='n', plot.cb=TRUE)
    axis(side = 1, at = Location, labels = LABELS, tick = TRUE, las = 2)

Ось X отсутствует, но присутствует цветная полоса


person lurodrig    schedule 18.05.2016    source источник


Ответы (1)


Войдите в саму функцию, набрав plot.biwavelet, скопируйте ее в редактор сценариев и отредактируйте функцию, дайте ей новое имя, например myplot, отредактируйте ее, затем запустите myplot вместо plot.biwavelet. Вы можете изменить все, что хотите, в функции plot.biwavelet. Например, чтобы увеличить количество меток xlim, просто выполните: locs <- pretty(range(xlim), n = 10). В настоящее время n=5.

person code123    schedule 12.05.2017