r - 通过两组区分 geom_point

标签 r ggplot2 styles grouping point

这是我到目前为止所得到的:

df<-data.frame(x=(1:100),
               y=rnorm(100),
               Mode=c(rep('Walk',25), rep('Bike',25), rep('Drive',25), rep('Train',25)),
               Location=c(rep(c(rep('City',10), rep('Rural',15)),4)))
ggplot(df)+geom_point(aes(x=x, y=y, col=Mode))+
  scale_color_brewer(palette='Set1')

geom_point plot

我还想通过位置来区分点,更具体地说,我希望将每种颜色分为两种颜色,例如紫色为浅紫色和深紫色,以表示位置。

我该怎么办?

最佳答案

你至少有两个选择。一种是为数据框中的模式和位置​​因素的交互分配颜色美感,如下所示:

ggplot(df) + 
geom_point(aes(x=x, y=y, color=Mode:Location)) + 
scale_color_manual(values = c('Red', 'Pink', 'Blue', 'LightBlue', 
    'Green', 'LightGreen', 'Black', 'Grey'))

使用这种方法,ggplot期望它找到的每个 Mode 和 Location 组合都有唯一的颜色值,并且每个组合都与其他组合不同。因此,要按您想要的颜色进行分组,您必须手动定义您喜欢的颜色。

另一个选项如评论中所述,涉及将 alpha(透明度)美学分配给位置并将颜色美学设置为模式。这会自动提供您想要的颜色分组,但在我看来,这会产生难以解释的图例。
ggplot(df) + 
geom_point(aes(x=x, y=y, color=Mode, alpha=Location)) + 
scale_alpha_discrete(range = c(0.4, 1)) + 
scale_color_brewer(palette = 'Set1')

两个结果:

Using Mode:Location
Using alpha aesthetic

关于r - 通过两组区分 geom_point,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29244491/

相关文章:

r - 带偏移量的泊松 GLM 的伪 R²

r - 我可以使用 ggplot 分别控制 x 和 y 轴吗?

r - 如何调整ggplot2中默认图例中标签的顺序,使其与数据中的顺序相对应

r - 如何使用 'fileInput' 函数来提供上传的数据来绘制 ggplot?

css - 改变类风格

r - R 打包中的 inst 和 extdata 文件夹

r - R中绘图函数中的45度线

r - 如何直接在 purrr::accumulate2() 中编写自定义函数

wpf - 如何将 WPF 滚动条样式应用于特定的 ListView ?

javascript - jquery 图标样式不适用于无序列表