Вопрос

У меня есть эта проблема. Я получил тепловую карту (но я полагаю, это относится к каждому сюжету), но мне нужно отразить ось 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Но мне нужно зеркальное зеркальное ось. Начиная с 0 сверху и 50 на дне. У кого -нибудь есть подсказка о том, что я должен сделать, чтобы изменить это?mirrored heatmap

Это было полезно?

Решение

Смотрите страницу справки?

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)))

Другие советы

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

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

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

я хотел бы использовать rev вот так:

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

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

Не забудьте переехать ось Y, как предполагает Ник.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top