ggplot2 geom_point 用 aes 填充只显示黑色
ggplot2 geom_point with aes fill only displays black
我在使用 geom_point
显示不同的填充颜色时遇到问题,只显示黑色。我知道我可以使用 color 来显示不同的颜色,但它似乎不适用于 geom_segment
。这是我得到的示例,其中点仅显示为黑色,而不是 scale_fill_manual
中指定的填充值。以其他方式显示相同的图和不同的两个图例,一种用于颜色,一种用于具有不同颜色的形状。谢谢!
ggplot(mtcars, aes(x=factor(gear), mpg)) +
geom_segment(aes(x=factor(gear), xend=factor(gear), y = mpg, yend = mpg+1, color = factor(cyl)), size = 4) +
geom_point(aes(fill = factor(carb))) +
scale_color_manual(values = c('red', 'green', 'blue')) +
scale_fill_manual(values = c('pink', 'light green', 'light blue', 'yellow', 'purple', 'orange')) +
coord_flip()
The plot I get
用geom_point
和geom_segment
,这两个都需要scale_color_manual
来改变颜色,这当然是不可能的。但是,如果您使用开放符号(可以填充),则可以将一个因素映射到填充,将另一个因素映射到颜色。因此,它们可以在不同的尺度上各自拥有自己的颜色。因此,对于 geom_point
,我将形状指定为 pch = 21
。
library(ggplot2)
ggplot(mtcars, aes(x = factor(gear), mpg)) +
geom_segment(aes(
x = factor(gear),
xend = factor(gear),
y = mpg,
yend = mpg + 1,
color = factor(cyl)
),
size = 4) +
geom_point(aes(fill = factor(carb)), pch = 21) +
scale_color_manual(values = c('red', 'green', 'blue')) +
scale_fill_manual(values = c('pink', 'light green', 'light blue', 'yellow', 'purple', 'orange')) +
coord_flip()
使用 scale_color_manual
还是 scale_fill_manual
取决于 geom
类型。根据 "Change Colors Manually":
A custom color palettes can be specified using the functions:
- scale_fill_manual() for box plot, bar plot, violin plot, etc
- scale_color_manual() for lines and points
但是不同的绘图符号允许您绕过这些规范。
我在使用 geom_point
显示不同的填充颜色时遇到问题,只显示黑色。我知道我可以使用 color 来显示不同的颜色,但它似乎不适用于 geom_segment
。这是我得到的示例,其中点仅显示为黑色,而不是 scale_fill_manual
中指定的填充值。以其他方式显示相同的图和不同的两个图例,一种用于颜色,一种用于具有不同颜色的形状。谢谢!
ggplot(mtcars, aes(x=factor(gear), mpg)) +
geom_segment(aes(x=factor(gear), xend=factor(gear), y = mpg, yend = mpg+1, color = factor(cyl)), size = 4) +
geom_point(aes(fill = factor(carb))) +
scale_color_manual(values = c('red', 'green', 'blue')) +
scale_fill_manual(values = c('pink', 'light green', 'light blue', 'yellow', 'purple', 'orange')) +
coord_flip()
The plot I get
用geom_point
和geom_segment
,这两个都需要scale_color_manual
来改变颜色,这当然是不可能的。但是,如果您使用开放符号(可以填充),则可以将一个因素映射到填充,将另一个因素映射到颜色。因此,它们可以在不同的尺度上各自拥有自己的颜色。因此,对于 geom_point
,我将形状指定为 pch = 21
。
library(ggplot2)
ggplot(mtcars, aes(x = factor(gear), mpg)) +
geom_segment(aes(
x = factor(gear),
xend = factor(gear),
y = mpg,
yend = mpg + 1,
color = factor(cyl)
),
size = 4) +
geom_point(aes(fill = factor(carb)), pch = 21) +
scale_color_manual(values = c('red', 'green', 'blue')) +
scale_fill_manual(values = c('pink', 'light green', 'light blue', 'yellow', 'purple', 'orange')) +
coord_flip()
使用 scale_color_manual
还是 scale_fill_manual
取决于 geom
类型。根据 "Change Colors Manually":
A custom color palettes can be specified using the functions:
- scale_fill_manual() for box plot, bar plot, violin plot, etc
- scale_color_manual() for lines and points
但是不同的绘图符号允许您绕过这些规范。