使用ggplot在图例中显示多列

问题描述 投票:0回答:1

我有一个数据框(wi_hist_df),其中包含三列(下面我打印了其中的一部分):

  weights Frequency   Criterion
1  0.2425         2 Criterion_1
2  0.2475        15 Criterion_1
3  0.2525        80 Criterion_1
4  0.2575       314 Criterion_1
5  0.2625       759 Criterion_1
6  0.2675      1296 Criterion_1
...............................
103  0.0465        29 Criterion_7
104  0.0475        18 Criterion_7
105  0.0485         6 Criterion_7
106  0.0495         2 Criterion_7
107  0.0505         2 Criterion_7
108  0.0515         1 Criterion_7

我想使用 ggplot 将所有标准绘制在一个图中:

weights_ggplot = ggplot(data = wi_hist_df, aes(x = weights, y = Frequency, color = Criterion)) +
    geom_line(size = 1.5) + theme_bw() +
  theme(axis.text.x  = element_text(size = 30),axis.text.y  = element_text(size = 30) )     +
  theme(axis.title.x = element_text(size = 30),axis.title.y = element_text(size = 30) )     +
  theme( legend.title=element_text(size=10),  legend.text=element_text(size=10)       )
weights_ggplot # need to split into columns the legend

打印以下图

但是,我想将图例列拆分为多列。我尝试过使用指南功能,但没有成功。任何帮助将不胜感激。

ggplot2 multiple-columns legend
1个回答
0
投票

像这样?与

guides(color = guide_legend(ncol = 2))

library(tidyverse)

df <- tribble(
  ~weights, ~Frequency, ~Criterion,
  0.2425, 2, "Criterion_1",
  0.2475, 15, "Criterion_1",
  0.2525, 80, "Criterion_1",
  0.2575, 314, "Criterion_2",
  0.2625, 759, "Criterion_2",
  0.2675, 1296, "Criterion_2",
  0.0465, 29, "Criterion_3",
  0.0475, 18, "Criterion_3",
  0.0485, 6, "Criterion_3",
  0.0495, 2, "Criterion_4",
  0.0505, 2, "Criterion_4",
  0.0515, 1, "Criterion_4"
)

df |> 
  ggplot(aes(weights, Frequency, color = Criterion)) +
  geom_line(linewidth = 1.5) +
  theme_bw() +
  theme(axis.text.x = element_text(size = 30), 
        axis.text.y = element_text(size = 30),
        axis.title.x = element_text(size = 30), 
        axis.title.y = element_text(size = 30),
        legend.title = element_text(size = 10), 
        legend.text = element_text(size = 10)
        ) +
  guides(color = guide_legend(ncol = 2))

创建于 2024-04-20,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.