ggplot2散点图——分几部分点分别用不同的color scale渐变着色

时间:2024-04-08 13:59:37

ggplot2散点图——分几部分点分别用不同的color scale渐变着色

问题描述

在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")

实现效果

ggplot2散点图——分几部分点分别用不同的color scale渐变着色


参考

https://eliocamp.github.io/codigo-r/2018/09/multiple-color-fill-scales-ggplot2/