小编Pet*_*ter的帖子

使用scale_shape_manual时,图例中的颜色会丢失

我试图使用形状的位置21的填充形状绘制点.

d <- data.frame(expand.grid(a=letters[1:4],
      b=factor(1:2)), y=rnorm(8),x=rnorm(8))
Run Code Online (Sandbox Code Playgroud)

这非常有效:

ggplot(d, aes(x=x, y=y,fill=a,color=a))  + 
      geom_point(aes(shape=b,fill=a),size=4) +
      scale_shape_manual(values=c(21,22))
Run Code Online (Sandbox Code Playgroud)

我希望将形状的轮廓颜色设置为黑色,所以我认为在设置之外设置颜色="黑色" aes()可以解决问题:

 ggplot(d, aes(x=x, y=y,fill=a,color=a))  + 
   geom_point(aes(shape=b,fill=a),color="black",size=4) + 
   scale_shape_manual(values=c(21,22))
Run Code Online (Sandbox Code Playgroud)

这在情节内部起作用.但是,图例中的颜色都设置为黑色.

如何获得上面的传奇?

r ggplot2

5
推荐指数
1
解决办法
1154
查看次数

基于另一列的集总系数

该示例显示了不同工厂生产产出的测量结果,其中第一列表示工厂,最后一列表示生产量。

factory <- c("A","A","B","B","B","B","B","C","D")
production <- c(15, 2, 1, 1, 2, 1, 2,20,5)
df <- data.frame(factory, production)
df
  factory production
1       A         15
2       A          2
3       B          1
4       B          1
5       B          2
6       B          1
7       B          2
8       C         20
9       D          5
Run Code Online (Sandbox Code Playgroud)

现在,我想根据该数据集中的总产量将工厂分为更少的级别。

使用正常的 forcats::fct_lump,我可以将它们按 thy 出现的行数进行集中,例如用于制作 3 个级别:

library(tidyverse)    
df %>% mutate(factory=fct_lump(factory,2))
      factory production
    1       A         15
    2       A          2
    3       B          1
    4       B          1
    5       B          2
    6       B          1
    7       B …
Run Code Online (Sandbox Code Playgroud)

r tidyverse forcats

2
推荐指数
1
解决办法
1741
查看次数

标签 统计

r ×2

forcats ×1

ggplot2 ×1

tidyverse ×1