我用值标记散点图 . 为了使其可读,我希望文本颜色比点更暗(绿色点会有一个更深的绿色标签):
p1 <- ggplot(iris, aes(Sepal.Length, Sepal.Width, col = Species))+
geom_point()+
geom_text(aes(label = Sepal.Length), size = 2, position = position_dodge(width = 0.2))
我可以使用scale_colour_discrete来创建我想要的效果,但它适用于点和文本 .
p1 + scale_colour_discrete(l = 50)
我可以仅将其应用于文本吗?
2 回答
你可以试试:
现在使用
col2rgb
和rgb
(source)或其他approach使您的颜色变暗绘制标签 .
为了更好地概述,我建议使用
geom_text_repel
. 值得注意的是,你必须使用as.character
.如果您不想在开头指定颜色,您还可以使用以下方法提取原始ggplot颜色:
然后使用上面的代码获得较暗的文本颜色或将所有内容组合在一个较暗的函数中:
定义点的颜色:
最初绘制点,但手动设置颜色:
通过采用与用于绘图的颜色相同的颜色来定义文本颜色,但更改色调(l,可以调整到您想要的深度):
使用文本注释绘图(我添加了一个小的y偏移量,以便文本和点不重叠):