gpt4 book ai didi

R ggplot2 : How to draw geom_points that have a solid color and a transparent stroke and are colored depending on color?

转载 作者:行者123 更新时间:2023-12-03 23:11:45 27 4
gpt4 key购买 nike

我想制作一个散点图,其中每个点都有一个球体。点及其球体都根据某些列值着色。
一个显示我想要的最小示例:

library(ggplot2)
library(vcd) # only needed for example dataset
ggplot(Arthritis, aes(x = ID, y = Age)) +
geom_point(aes(color=Sex), size=10, alpha=.3) +
geom_point(aes(color=Treatment), size=3)
enter image description here
这个“解决方案”的问题是使用两个 geom_point层层叠叠的传说似乎乱七八糟。我想只有一个 geom_point 也会更有意义。图层并使用一个也添加笔划的形状,所以是这样的:
ggplot(Arthritis, aes(x = ID, y = Age)) + 
geom_point(aes(color=Sex, fill=Treatment), shape=21, size=5, stroke=5)
enter image description here
这里的图例更有意义,但是,我不知道如何使笔划透明。这很重要,因为当点重叠时,您将看不到任何东西。
类似 this 的答案不解决我的问题,因为它们使用恒定颜色,因此可以使用函数 alpha .但是,我无法弄清楚是否以及如何将其与取决于数据的颜色一起使用。
TL;DR:我怎样才能画画 geom_points具有纯色和透明笔触但不是恒定颜色的?

最佳答案

您是在正确的轨道上认识到您可以使用功能 alpha() ,并且已经意识到您不能只放 alpha()aes() .但是,您可以通过 alpha()values=任何 scale_* 内的参数职能。这是一个使用 mtcars 的示例:

ggplot(mtcars, aes(mpg, disp)) + 
geom_point(
aes(color=factor(cyl), fill=factor(carb)),
shape=21, size=4, stroke=4) +
scale_color_manual(values=alpha(rainbow(3), 0.2))
enter image description here
一个问题是“ factor(carb) 图例周围的那些大黑线不适合我。太棒了。您可以使用 guides() 函数并使用 override.aes= 来指定您想要显示的内容来摆脱它们在那里以及用什么替换它。在这种情况下,您可以设置 color=NA 以覆盖继承的美学为透明(仅留下 fill= 部分)。
ggplot(mtcars, aes(mpg, disp)) + 
geom_point(
aes(color=factor(cyl), fill=factor(carb)),
shape=21, size=4, stroke=4) +
scale_color_manual(values=alpha(rainbow(3), 0.2)) +
guides(fill=guide_legend(override.aes = list(color=NA))) +
labs(color="cyl", fill="carb")
enter image description here
顺便说一句,没有简单的方法可以将笔划放置在 geom_point 的填充部分“后面”。 .您可能可以为此编写自己的自定义 stat/geom,但是 geom_point总是先填充,然后描边。

关于R ggplot2 : How to draw geom_points that have a solid color and a transparent stroke and are colored depending on color?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62676917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com