是否可以制作一个主题,以更改用于标识绘图中不同颜色的图例图标/符号的形状?
我的意思是,如果您绘制线图:
library(ggplot2)
ggplot(iris, aes(x=Sepal.Length, y = Sepal.Width, color=Species)) +
geom_line()
您将看到“细”线标识每个不同的组。我不喜欢这个。
我想要的是始终使我的颜色标识符像这样漂亮的实心方块/块:
ggplot(iris, aes(x=Sepal.Length, y = Sepal.Width, color=Species, fill=Species)) +
geom_bar(stat='identity')
我想知道是否可以添加到自定义ggplot主题以默认启用此选项?我有一些针对情节的定制主题,我希望能够添加它,因为有时很难分辨出非常微弱的线条或点。实心正方形更加引人注目。
答案 0 :(得分:1)
我认为theme()
不允许您覆盖图例关键符号中的特定美学参数。它处理图例键的大小,背景等,而draw_key_XXX
覆盖键符号的外观。
但是,如果您担心要重新键入,则可以将guides(...)
添加到自定义主题:
theme_customized <- function(...){
list(guides(color = guide_legend(override.aes = list(size = 10))),
# optional: the base theme you modify from
theme_light(),
# customized theme options for your theme
# (I'm using axis.text / panel.grid for illustration)
theme(axis.text = element_text(size = 15),
panel.grid.minor.y = element_blank()),
# any theme options that you may want to set
# on an ad hoc basis
theme(...))
}
使用自定义主题:
gridExtra::grid.arrange(
# with ggplot's default theme_grey
ggplot(iris, aes(x=Sepal.Length, y = Sepal.Width, color=Species)) +
geom_line(),
# customized theme with default options
ggplot(iris, aes(x=Sepal.Length, y = Sepal.Width, color=Species)) +
geom_line() +
theme_customized(),
# customized theme with additional adhoc specifications
ggplot(iris, aes(x=Sepal.Length, y = Sepal.Width, color=Species)) +
geom_line() +
theme_customized(axis.title = element_text(color = "blue"),
panel.background = element_rect(fill = "darkgrey")),
ncol = 1
)