填充和scale_fill_discrete /图例之间的ggplot冲突

pab*_*lom 4 plot r ggplot2

我正在修改geom_point尝试绘制以下代码。我已经将cars $ vs转换为具有离散级别的因子,以便通过将其分配给ggplot aes设置中的“填充”,可以用不同的颜色可视化该变量的两个级别。

cars <- mtcars
cars$vs <- as.factor(cars$vs)

ggplot(cars,aes(x = mpg, y = disp, fill = vs)) +
  geom_point(size = 4) +
  scale_fill_discrete(name = "Test")
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

如您所见,该图没有通过颜色区分两种“填充”条件。但是,它保留了我在scale_fill_discrete中指定的图例标签。

另外,我可以绘制以下内容(相同的代码,但请使用“颜色”代替“填充”)

cars <- mtcars
cars$vs <- as.factor(cars$vs)

ggplot(cars,aes(x = mpg, y = disp, color = vs)) +
  geom_point(size = 4) +
  scale_fill_discrete(name = "Test")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如您所见,使用“颜色”而不是“填充”可以通过颜色区分因子的级别,但是似乎可以覆盖我使用scale_fill_discrete对图例标题所做的任何更改。

我是否错误地使用“填充”?如何使用此方法以不同的颜色绘制因子的不同级别通过scale_fill_discrete控制图例?

Psi*_*dom 5

由于您color用作映射,因此可以使用scale_color_*来更改相应的属性,而不是scale_fill_*

ggplot(cars,aes(x = mpg, y = disp, color = vs)) +
      geom_point(size = 4) +
      scale_color_discrete(name = "Test") 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明