如何编辑图例标签并将图例分成ggplot中的多列

时间:2019-07-31 04:32:53

标签: r ggplot2 legend

我正在尝试在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帖子-因此,我无法放入查询中的图的图像,如果有要做但没有做的事情,我深表歉意。

0 个答案:

没有答案