我正在修补geom_point试图绘制以下代码 . 我已将汽车$ 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")
如您所见,图表不会通过颜色区分两种“填充”条件 . 但是,它会保留我在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")
正如您所看到的,使用“颜色”代替“填充”可以通过颜色区分因子的级别,但似乎使用scale_fill_discrete覆盖我对图例 Headers 所做的任何更改 .
我错误地使用了"fill"吗?如何使用此方法绘制不同颜色的不同级别的因子,并控制绘图图例与scale_fill_discrete?
2 回答
由于您使用
color
作为映射,因此可以使用scale_color_*
更改相应的属性而不是scale_fill_*
:要使用
fill
和geom_point
,您应该使用可填充的形状:请参阅
?pch
,其中显示形状21至25可以着色并填充不同的颜色 .ggplot
将不使用fill
,除非形状是可填充的形状 . 此行为在不同版本中有所改变,如the NEWS file中所示 .没有理由使用
fill
和geom_point
,除非你想要点的轮廓和填充颜色不同,所以推荐color
的另一个答案可能就是你想要的 .