我正在尝试在R中创建ggplot折线图,并希望将图例分成两列并重命名标签,但是到目前为止,我还没有找到实现此目的的方法。
我找到了有关如何编辑图例标签-Editing legend (text) labels in ggplot-和如何创建多列图例-Creating multi column legend in ggplot-的说明,但是这两种解决方案似乎与scale_colour_manual不兼容除了guides()图例以外,似乎还会创建另一个图例。我的代码如下:
economy <- read.csv("R input.csv")
economy_melt <- reshape2::melt(economy,id.vars="Time")
my_labels <- c("Baseline Scenario - Value Added - Industry",
"Volcanic Eruption Scenario - Value Added - Industry",
"Baseline Scenario - Value Added - Commercial",
"Volcanic Eruption Scenario - Value Added - Commercial")
my_plot <- ggplot(data = economy_melt, aes(Time, value, colour = variable, linetype = variable)) +
geom_line(size = 1)
my_plot <- my_plot + theme_bw()
my_plot <- my_plot + theme(legend.direction = "vertical", legend.position = "bottom")
my_plot <- my_plot + guides(col = guide_legend(ncol = 2)) # this line does not appear to work
my_plot <- my_plot + scale_linetype_manual(name=" ",values=c(1,1,1,1), labels = my_labels)
my_plot <- my_plot + scale_color_manual(name = " ",
values=c("#396AB1","#DA7C30","#3E9651","#CC2529"),
labels=my_labels)
my_plot <- my_plot + theme(legend.position = "bottom",
legend.title=element_blank(),
legend.key = element_rect(fill = "transparent", colour = "transparent"),
legend.background = element_rect(fill=alpha('white', 0.8)))
show(my_plot)
我正在使用的数据可用here
使用此代码,图例项目标签可以正确显示,但它们在单列中,而我希望它们在两列中。
任何帮助将不胜感激。
请注意,这是我的第一篇StackExchange帖子-因此,我无法放入查询中的图的图像,如果有要做但没有做的事情,我深表歉意。