如何用较旧的颜色数据在ggplot中绘制新点?

时间:2018-11-01 13:04:01

标签: r ggplot2 plot

我知道之前曾问过类似的问题,但我的问题有所不同。考虑具有x和y坐标颜色的数据点data1,并用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仅吸引data2的2个点,但出现错误:

  

不知道如何自动为类型功能的对象选择刻度。默认为连续。   错误:列colour必须是一维原子向量或列表

1 个答案:

答案 0 :(得分:1)

问题是,data1的col和您的data2之间没有映射。

请尝试以下操作:

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