2016-07-09 5 views
1

Я использую пакет biwavelet для проведения анализа когерентности вейвлета. Когда я хочу установить свою собственную метку x, я нахожу, что axis не работает. Ниже приведен воспроизводимый пример. Благодарю.пакет для бивалеров: «ось» не работает

require(biwavelet) 
t1 <- cbind(1:100, rnorm(100)) 
t2 <- cbind(1:100, rnorm(100)) 
wtc.t1t2 <- wtc(t1,t2,nrands = 10) 
plot(wtc.t1t2, plot.cb = TRUE, plot.phase = TRUE,xaxt='n') 
axis(1,at = seq(10,100,10),labels = seq(1,10,1)) 

ответ

2

Вещь, которая нарушала ваш заговор, была plot.cb = TRUE.

В исходном коде для plot.biwavelet автор отмечает следующее о возможности plot.cb:

## Добавить цветную полосу: это должно произойти после того, как все, иначе хаос наступает!

В этом была проблема - вы вызвали axis() после plot.cb и последовал хаос. Однако,, вы можете вручную добавить цветную полосу, используя image.plot из пакета fields, после запуска plot без plot.cb, добавив axis().

pacman::p_load(biwavelet,fields) 
t1 <- cbind(1:100, rnorm(100)) 
t2 <- cbind(1:100, rnorm(100)) 
wtc.t1t2 <- wtc(t1,t2,nrands = 10) 
plot(wtc.t1t2, plot.phase = TRUE,xaxt='n') 
axis(1,at = seq(10,100,10),labels = seq(1,20,2)) 
image.plot(zlim=c(0,25), legend.only=TRUE) 

enter image description here

Вы можете настроить тики и цветовую шкалу по своему вкусу этого пути!

+1

@ZheyuanLi Возможно, вы можете мне помочь с этим. Я нашел комментарий автора пакета в исходном коде, в котором говорится, что если вы вызываете опцию 'plot.cb', то это * must * будет последним, что вы делаете с сюжетом, - если вы добавите что-нибудь еще, например' axis() 'график разбивается. Я не уверен, как добавить 'plot.cb()' после 'axis()'. –

+1

@ZheyuanLi Думаю, у меня есть идея. Возможно, мы можем вручную добавить цветную полосу, не используя 'plot.cb'. Спасибо за предысторию этого. Вы, наверное, лучше с сюжетами, чем я, поэтому не стесняйтесь добавлять ответ, но я буду продолжать взламывать его, чтобы посмотреть, смогу ли я улучшить свой ответ. –

+1

@ZheyuanLi Спасибо за помощь. Я обновил его, но только поместил его в общую легенду image.plot, не настроив его на конкретный случай. Надеюсь, это достаточно хорошо; если нет, я могу попытаться работать над этим завтра. –