问题描述
在R里面做散点图,可以利用scale_color_gradient('title', low = "gray", high = "blue")
等函数进行渐变着色,而此时如果散点中有多部分,想要区分点的来源,可以利用shape
等特性进行标识,但是当点比较多时,形状不如颜色更容易区别,所以想到分别用不同的颜色范围去着色。
解决方案
利用R包ggnewscale
中的函数new_scale
即可。
示例代码如下:
p <- ggplot() +
geom_point(data=subset(plot.df,source=='T1'),
mapping=aes(x1, x2, color=subset(plot.df.correct,source=='T1')[['value']]),
size = 0.5,alpha=0.7) +
scale_color_gradient('set1', low = "#cfd3ed", high = "#4954c1") +
new_scale("color") +
geom_point(data=subset(plot.df,source=='T2'),
mapping=aes(x1, x2, color=subset(plot.df.correct,source=='T2')[['value']]),
size = 0.5,alpha=1) +
scale_color_gradient('set2', low = "#ede9cf", high = "#c1b649")
实现效果
参考
https://eliocamp.github.io/codigo-r/2018/09/multiple-color-fill-scales-ggplot2/