带有颜色渐变和附加点的散点图

时间:2017-07-27 14:18:44

标签: r ggplot2

回到ggplot2寻找一些进化的散点图后,我觉得我迷路了: 我有两个数据集df1df2(最后一个是单点)。

>df1
    DATE        XOV        DAX
1  16479  2.1880142 -1.8203765
2  16482  2.7930760 -2.1501989
3  16483  2.8998516 -1.9903619
4  16484  1.8676874 -1.8704841
5  16485  1.5473606 -1.8007140
6  16486  1.3338094 -1.4620117
7  16489  0.7643395 -1.4512291
8  16490  0.4084208 -1.2044965
9  16491  0.2660533 -1.2577755
10 16492 -0.5169678 -0.9438099

>df2
   DATE      XOV       DAX
1 13514 1.620395 -1.927569

我想要获得(1)是一个带有df1的散点图,根据渐变颜色取决于日期,(2)用更大的尺寸在其上添加红色的单点。

我可以获得(1)

library(ggplot2)

ggplot() + 
geom_point(data=df1, aes(x=DAX, y=XOV, colour=DATE)) + 
theme(legend.position="none") + 
scale_colour_gradient(low="#A9C8F3", high="#0C2389")

,并提供:

enter image description here

当我想添加(2)时,我会使用:

library(ggplot2)

ggplot() + 
geom_point(data=df1, aes(x=DAX, y=XOV, colour=DATE)) + 
theme(legend.position="none") + scale_colour_gradient(low="#A9C8F3", high="#0C2389") + 
geom_point(data=df2, aes(x=DAX, y=XOV, color="red"))

然后得到错误:

$ Discrete value supplied to continuous scale

我很抱歉,如果它是重复的,已经找到了解决方案,但我没有得到错误,尽管从ggplot()中拉出每个数据帧...

1 个答案:

答案 0 :(得分:1)

您应该在aes之外指定颜色参数:

ggplot() + 
  geom_point(data=df1, aes(x=DAX, y=XOV, colour=DATE)) + 
  theme(legend.position="none") + 
  scale_colour_gradient(low="#A9C8F3", high="#0C2389") +
  geom_point(data=df2, aes(x=DAX, y=XOV), colour="red",size=5)

enter image description here

可以找到行为的解释here

  

当在aes中指定时,美学被映射到a的值   数据中的变量。由于数据和数据之间存在映射   可见的审美,有一个传说,显示了映射。   在aes电话之外,审美只是设定为特定值。