gpt4 book ai didi

r - 在ggplot2中绘图后如何更改数据子集的颜色/形状/大小

转载 作者:行者123 更新时间:2023-12-01 00:56:19 27 4
gpt4 key购买 nike

在很多情况下,我使用 ggplot 创建漂亮的图形,但我想使用属于某个组的数据的颜色/形状/大小(例如突出显示它)。

当我第一次创建绘图时,我了解如何为每个组设置不同的这些属性。但是,我想知道是否有一个简单的命令来更改属性 绘图创建后 最好不必为所有其他子集指定属性)。

例如,考虑以下代码:

library(ggplot2)
x = seq(0,1,0.2)
y = seq(0,1,0.2)
types = c("a","a","a","b","b","c")
df = data.frame(x,y,types)

table_of_colors = c("a"="red","b"="blue","c"="green")
table_of_shapes = c("a"=15,"b"=15,"c"=16)

my_plot = ggplot(df) +
theme_bw() +
geom_point(aes(x=x,y=y,color=types,shape=types),size=10) +
scale_color_manual(values = table_of_colors) +
scale_shape_manual(values=table_of_shapes)

产生以下情节:

<code>my_plot</code>

我很好奇:
  • 有没有办法改变绿点的颜色(类型==“c”)而不必输入其他点的颜色?
  • 有没有办法改变蓝/红点的形状(输入 %in% c("a","b"))而不必输入所有其他点的形状?
  • 所有点的大小当前设置为 10。有没有办法只将绿色点的大小更改为 15,同时将所有剩余点的大小保持为 10?

  • 我不确定这是否是现有功能,但欢迎 hack(只要更改将反射(reflect)在图例中)。

    最佳答案

    这对我来说似乎有点棘手,但下面的代码解决了您列表中的第 1 项和第 2 项:

    my_plot + 
    scale_colour_manual(values=c(table_of_colors[1:2],c="green")) +
    scale_shape_manual(values=c(a=4,b=6, table_of_shapes[3]))

    我想也许你可以用 scale_size_manual(values=c(10,10,15)) 之类的东西来改变大小,但这不起作用,也许是因为大小是硬编码的,而不是一开始就设置美学。

    根据需要创建新的形状、颜色等向量可能会更清晰,而不是像上面那样进行单独的临时更改。

    关于r - 在ggplot2中绘图后如何更改数据子集的颜色/形状/大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595029/

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