R: зеркальная ось Y из графика - PullRequest
2 голосов
/ 02 мая 2011

У меня есть эта проблема.Я получил тепловую карту (но я предполагаю, что это применимо к каждому графику), но мне нужно отразить мою ось Y.

Я получил здесь пример кода:

library(gstat)
x <- seq(1,50,length=50)
y <- seq(1,50,length=50)
z <- rnorm(1000)
df <- data.frame(x=x,y=y,z=z)
image(df,col=heat.colors(256)) 

Это сгенерируетследующая тепловая карта First heatmap Но мне нужна зеркальная ось Y.Начиная с 0 сверху и 50 снизу.Кто-нибудь знает, что я должен сделать, чтобы изменить это?mirrored heatmap

Ответы [ 5 ]

6 голосов
/ 03 мая 2011

См. Страницу справки для? Plot.default, где указано

xlim: пределы x (x1, x2) графика. Обратите внимание, что «x1> x2» разрешено и ведет к «обращенной оси».

library(gstat)
x <- seq(1,50,length=50)
y <- seq(1,50,length=50)
z <- rnorm(1000)
df <- data.frame(x=x,y=y,z=z)

Итак

image(df,col=heat.colors(256), ylim = rev(range(y)))
1 голос
/ 02 мая 2011

Это работает для вас (хотя это немного хакерство)?

df2<-df
df2$y<-50-df2$y #reverse oredr
image(df2,col=heat.colors(256),yaxt="n") #avoid y axis
axis(2, at=c(0,10,20,30,40,50), labels=c(50,40,30,20,10,0)) #draw y axis manually
0 голосов
/ 02 мая 2011

Для увеличения вертикальной оси в направлении вниз я предоставил два пути (два разных ответа) для следующего вопроса:

R - изображение пиксельной матрицы?

0 голосов
/ 02 мая 2011

Я бы использовал rev примерно так:

df <- data.frame(x=x,y=rev(y),z=z)

Если вы не знали, обратите внимание, что df на самом деле является функцией. Вы можете быть осторожны при перезаписи. Если вы rm(df), все вернется на круги своя.

Не забудьте переименовать ось y, как предлагает Ник.

0 голосов
/ 02 мая 2011

Функция revaxis в пакете plotrix «меняет смысл любой из осей« x »и« y »или обе. Это не решит вашу проблему (решение Ника - правильное), но может быть полезно, когда вам нужно построить диаграмму рассеяния с перевернутыми осями.

...