我有以下ggplot
library(ggplot2)
col_define = c('red', 'orange', 'blue', 'lightblue', 'green')
names(col_define) = as.vector(unique(diamonds$cut))
ggplot(diamonds, aes(color)) +
geom_bar(aes(fill = cut)) +
scale_fill_manual(values = col_define, breaks = names(col_define), aesthetics = c("fill")) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position=c(0,1),
legend.justification = c(0,1),
legend.box.margin = margin(5, l = 5, unit = 'mm'),
legend.box = 'horizontal',
legend.box.background = element_rect( fill = alpha('#7f7f7f', .2), size = 0.1, linetype = "solid", color = "#595959"),
axis.text.x = element_text(angle = 30, hjust = 1)
)
如您所见,图例似乎不在正确的位置。我想将图例放在绘图区域的左上角,但上边距和左边距会有 5 个像素。
此外,边距颜色和alpha 值也似乎无法正确显示。另外,图例项应水平放置
您能帮忙纠正一下吗?
不确定您想要的结果。首先,要水平放置键,您可以使用
guide_legend(nrow = 1)
(legend.box = 'horizontal'
用于排列多个图例,而不是图例键或项目)。其次,关于图例的背景。您确定要legend.box.background
还是legend.background
要?关于图例的放置,一切看起来都很好,只是使用数字向量
legend.position
在 中已被弃用ggplot2 3.5.0
。