我试图使用形状的位置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)
这在情节内部起作用.但是,图例中的颜色都设置为黑色.

如何获得上面的传奇?
该示例显示了不同工厂生产产出的测量结果,其中第一列表示工厂,最后一列表示生产量。
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)