Как построить новую точку в ggplot со старыми данными о цвете? - PullRequest
0 голосов
/ 01 ноября 2018

Я знаю похожие вопросы, которые задавались ранее, но мой вопрос другой. Рассмотрим точки данных data1, которые имеют цвета относительно координат x и y, и я нанесу их на график с помощью ggplot

x = 1:100
y = 1:100
d = expand.grid(x,y)

data1 <- data.frame(
xval = d$Var1, 
yval = d$Var2, 
col = d$Var1+d$Var2) 

data2 <- data.frame(
xnew = c(1.5, 90.5), 
ynew = c(95.5, 4))

ggplot(data1, aes(xval, yval, colour = col)) + geom_point()

data1

Но я хочу, чтобы в последней строке ничего не отображалось, и я хочу построить data2 точек относительно цветов data1. например я рисую то, что хочу построить для data2:

data2

Я изменил последнюю строку на:

ggplot(data1, aes(xval, yval, colour = col)) +
geom_point(data = data2, aes(x = xnew, y = ynew))

Теперь я ожидаю, что ggplot нарисует только 2 пункта из data2, но у меня ошибка:

Не знаю, как автоматически выбирать масштаб для объекта типа функции. По умолчанию для непрерывного. Ошибка: столбец colour должен быть атомом 1d или списком

1 Ответ

0 голосов
/ 01 ноября 2018

Проблема в том, что нет сопоставления между col из data1 и вашими данными2.

Пожалуйста, попробуйте следующее:

ggplot(data2, aes(x = xnew, y = ynew, colour = xnew)) + geom_point() + 
scale_fill_gradientn(colours=c(2,1),
                   values   = range(data1$xval),
                   rescaler = function(x,...) x,
                   oob      = identity)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...