2015-04-26 5 views
1

Как я могу поместить пользовательскую метку на вторичной оси Y в R, используя следующий код?Пользовательская метка на вторичной оси y в R

library(zoo) 
#--------------random data 
x.Date <- as.Date(paste(2003, 02, c(1, 3, 7, 9, 14), sep = "-")) 
z <- zoo(rnorm(5), x.Date) 
z2 <- zoo(rnorm(5, sd = 0.2), x.Date) 

#--------------create plot 
png(filename = "Google.png", width = 480, height = 480) 

plot(z, type="l", xlab="Year", lt=1, lwd=1, ylab="Google Trend") 
grid(nx = NULL, ny = NULL, col = "lightgray", lty = "dotted", 
    lwd = par("lwd"), equilogs = TRUE) 
par(new=TRUE) 
plot(z2, type="l", ann=FALSE, lt=1, lwd=3, yaxt="n") 
axis(4, ylab="Test") # Here?! 

legend("topright", c("z", "z2"), lty=c(1,1), 
    lwd=c(1,3),col=c("black","black"), 
    box.col="black",bg="white") 

title("Google") 
dev.off() 

Ярлык «Тест» не появляется в моем участке ...

Кроме того, как перезаписать линии сетки с z2 и г линий? Другими словами, как привести построенные линии к «фронту»?

ответ

2

Вам нужно mtext для этой работы:

library(zoo) 
#--------------random data 
x.Date <- as.Date(paste(2003, 02, c(1, 3, 7, 9, 14), sep = "-")) 
z <- zoo(rnorm(5), x.Date) 
z2 <- zoo(rnorm(5, sd = 0.2), x.Date) 

#--------------create plot 
#png(filename = "Google.png", width = 480, height = 480) 

plot(z, type="l", xlab="Year", lt=1, lwd=1, ylab="Google Trend") 
grid(nx = NULL, ny = NULL, col = "lightgray", lty = "dotted", 
    lwd = par("lwd"), equilogs = TRUE) 
par(new=TRUE) 
plot(z2, type="l", ann=FALSE, lt=1, lwd=3, yaxt="n") 
axis(4) 

#------here is the only part I added 
#you specify the text, location and usually line=2 to place next to 
#the y-axis labels 
mtext('Test', side=4, line=2) 
#-----------------------------------  

legend("topright", c("z", "z2"), lty=c(1,1), 
     lwd=c(1,3),col=c("black","black"), 
     box.col="black",bg="white") 

title("Google") 
#dev.off() 

Выход:

enter image description here

Что касается г и z2 они не кажутся позади сетки здесь.

+0

Хорошо, спасибо за этот быстрый ответ! Что странно: это не работает, если я создаю сюжет. Линия z находится за сеткой, хотя ... –

+0

Я могу видеть только «Тест», если я использую 'line = 0' или' line = 1', но затем он находится в неправильном месте. –

+1

Попробуйте изменить поля обоих графиков, используя 'par (mar = c (5,4,4,2)' (используйте это перед функцией графика) и посмотрите, какой из них лучше всего подходит для вас. Это типично при использовании средства просмотра rstudio и png. Каждое значение соответствует каждой стороне графика. Увеличьте числа, чтобы сузить диаграммы, чтобы вы могли видеть метку. – LyzandeR

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