График рассеивания на вершине тепловой карты - PullRequest
0 голосов
/ 05 мая 2018

Я хотел бы построить график рассеяния на тепловой карте. Я создал каждый тип графика с помощью ggplot.

Диаграмма рассеивания:

lambir_t <- ggplot(l_tree, aes(x=xcoord, 
[![enter image description here][1]][1]y=ycoord))+geom_point(col='red')+xlim(c(0, 1040))+ylim(c(0, 500))

enter image description here

Тепловая карта:

lambir_p <- ggplot(dfo, aes(x,y,
fillz))+geom_tile(color='white')+scale_fill_gradient(low='white', 
high='blue')+labs(x='x', y='y', title='Lambir Hills', 
fill='Phosphorus')

enter image description here

Теперь я хотел бы положить график рассеяния на верхнюю часть тепловой карты, чтобы я мог видеть, как эти точки меняются в зависимости от концентрации фосфора. Любые идеи о том, как я могу это сделать?

EDIT: enter image description here

Решение от @phalteman сработало. Это то, что я получил. У меня проблемы с настройкой размера точек (при установке 1 или 100 он выглядит одинаково), но в остальном это именно то, что я искал.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

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

Цвета работают как задумано. Размеры работали лучше, когда им присваивалось другое значение, как ни странно

ggplot(data = mydata, aes(x = baseofheatmap, y = heightofheatmap)) + 
  geom_tile(data = mydata, 
            aes(fill = valuetoheatmap)) +
  geom_point(data = mydata, 
             aes(x = valuetopoint, 
                 y = heightofheatmap, 
                 size = valuetopoint, 
                 color = "red"))
0 голосов
/ 05 мая 2018

Вы можете добавить несколько слоев на график, используя разные наборы данных. Добавьте точки, как обычно, но укажите аргумент данных. Без данных трудно понять, но что-то вроде этого, вероятно, поможет вам:

ggplot(dfo, aes(x,y,fillz)) + 
  geom_tile(color='white') + 
  scale_fill_gradient(low='white', high='blue') + 
  labs(x='x', y='y', title='Lambir Hills', fill='Phosphorus') +
  geom_point(data=l_tree, aes(x=xcoord, [![enter image description here][1]][1], y=ycoord)), col='red')
...