Как создать тепловую карту с количеством повторений внутри определенного диапазона значений - PullRequest
0 голосов
/ 14 января 2020

У меня есть набор данных, похожий на этот, с месяцем (мезе) в одном столбце и соответствующим значением в другом столбце, и я пытаюсь создать тепловую карту с месяцем (-ами) на оси х, отличающимися «интервалы» по оси y (например, от 0 до 10, от 10 до 20, от 20 до 30 и т. д. c.) и количество повторений определенного диапазона значений внутри месяца для каждого диапазона. Я попытался использовать функцию обрезки как для оси x, так и для оси y, чтобы создать ряд диапазонов значений, затем поместить все в таблицу и построить ее с этим кодом

 x_c <- cut(x, 12)
 y_c <- cut(y, 50)
 z <- table(x_c, y_c)
 image2D(z=z, border="black")

, но это не кажется, не работает: масштаб всегда от 0 до 1 (и мне нужны фактические значения) ... есть ли более простое решение?

dataset


По сути, мне нужен конечный результат, чтобы выглядеть примерно так (извините за мои очень плохие навыки рисования): то есть уровень Сульфат зимой выше, чем летом, и большая часть данных соответствует "кривой", отражающей эту тенденцию example in paint

1 Ответ

1 голос
/ 14 января 2020

Вы можете использовать geom_bin2d из ggplot2. Вы можете определить количество ячеек:

ggplot(data, aes(mese, nnso4)) + 
geom_bin2d(bins=c(12,50)) + 
scale_fill_gradient(low="yellow", high="red")

Вы можете изменить масштаб заполнения, например, viridis пакет имеет некоторые опции.

...