Вопрос по ggplot2, r, plot – Тепловая карта или карта плотности в R

1

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

<code>    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
</code>

Спасибо за помощь.

@PaulHiemstra Похоже, что дубликат - ответы на эти вопросы немного редки, но похоже, что вся информация есть, верно? Matt Parker
Смотрите также эти ссылки:stackoverflow.com/questions/7747991/geographical-heat-map-in-r stackoverflow.com/questions/8421536/a-true-heat-map-in-r stackoverflow.com/questions/10198228/… stackoverflow.com/questions/8161014/custom-heat-map-in-r, И это только первые несколько при поиске[r] heat map в ТАК. Paul Hiemstra
возможный дубликатPlotting a heat map for an upper or lower triangular matrix Paul Hiemstra

Ваш Ответ

3   ответа
2

Кроме того, вы можете создать тепловую карту с помощью ggplot2, просто используйтегеометрия плитки (geom_tile). Увидетьэта ссылка для очень сложного примера.

3

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

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

 image(as.matrix(myVar))
6

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

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

Похожие вопросы