2012-04-17 4 views
1

Я новичок в R и пытаюсь создать карту тепла или карту плотности, чтобы показать свои результаты. У меня есть x данных для 20 разных мест и в течение 20 лет. Я пытаюсь показать различия в местоположениях, а также в годах на одной карте. мои данные выглядят так.Карта тепла или карта плотности в R

1975 1977 1979 1981 1983 1985 1987 1989 
Dallas 25 28 27 29 31 33 35 37 
Houston 33 38 43 48 53 58 63 68 
Lubbock 28 29 31 33 35 37 39 41 
Austin 22 24 26 28 30 32 34 36 
San Antonio 31 32 33 34 35 36 37 38 

Благодарим за помощь.

+0

Смотрите также эти ссылки: http://stackoverflow.com/questions/7747991/geographical-heat-map-in -r http://stackoverflow.com/questions/8421536/a-true-heat-map-in-r http://stackoverflow.com/questions/10198228/heat-map-or-density-map-in-r http://stackoverflow.com/questions/8161014/custom-heat-map-in-r. И это только первые несколько при поиске '[r] heat map' в SO. –

+0

@PaulHiemstra Кажется, это дубликат, то ответы на этот вопрос немного редки, но похоже, что вся информация есть, верно? –

+0

Возможный дубликат [Построение тепловая карта для верхней или нижней треугольной матрицы] (http://stackoverflow.com/questions/6883618/plotting-a-heat-map-for-an-upper-or-lower-triangular-matrix) –

ответ

3

Вы можете просто использовать функцию image(), чтобы создать тепловую карту. Настройте, указав параметр col, чтобы указать цвета.

Обратите внимание, что если вы в настоящее время используете data.frame, возможно, потребуется преобразовать его в матрицу:

image(as.matrix(myVar)) 
2

В качестве альтернативы, вы можете сделать карту тепла с помощью ggplot2, просто используйте tile geometry (geom_tile). См. this link для очень подробного примера.

6

Для красивого изображения(), вам нужно будет добавить некоторые метки к вашим осям. Кроме того, цветовая легенда поможет интерпретировать цвета. В моем блоге http://menugget.blogspot.de/ есть функция для добавления этого масштаба к графику изображения. Ниже приведен пример (после загрузки функции image.scale из menugget:

years <- seq(1975,1989,2) 
db <- data.frame(Dallas=c(25, 28, 27, 29, 31, 33, 35, 37), 
Houston=c(33, 38, 43, 48, 53, 58, 63, 68), 
Lubbock=c(28, 29, 31, 33, 35, 37, 39, 41), 
Austin= c(22, 24, 26, 28, 30, 32, 34, 36), 
San_Antonio= c(31, 32, 33, 34, 35, 36, 37, 38) 
) 
db <- as.matrix(db) 

#plot 
layout(matrix(c(1,2), nrow=1, ncol=2), widths=c(4,1), heights=c(4)) 
layout.show(2) 
par(mar=c(5,5,1,1)) 
image(x=years, z=db, yaxt="n") 
axis(2, at=seq(0,1,,dim(db)[2]), labels=colnames(db)) 
#image.scale from http://menugget.blogspot.de/2011/08/adding-scale-to-image-plot.html 
par(mar=c(5,0,1,5)) 
image.scale(db, horiz=FALSE, yaxt="n", xaxt="n", xlab="", ylab="") 
axis(4) 
mtext("temp", side=4, line=2) 
box() 

enter image description here

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