【问题标题】:Change the position and size of legend of vertical lines ggplot更改垂直线ggplot图例的位置和大小
【发布时间】:2021-03-11 22:29:42
【问题描述】:

我想更改绘图中垂直线的图例的大小和位置。代码如下:

central_values <- data.frame(measurement = c("mean", "median"),
                             value = c(mean(CBGrecord_days[,2]), median(CBGrecord_days[,2])))

ggplot(CBGrecord_days, aes(x=CBGrecord_days[,2])) + 
  geom_histogram(color="darkblue", fill="lightblue", binwidth=17)+
    xlab("Number of days recorded")+ # for the x axis label
      ylab("Number of individuals")+
        scale_y_continuous(breaks=c(seq(0,40,5)))+
          scale_x_continuous(breaks=c(seq(0,230,15)))+
            geom_vline(data = central_values, aes(xintercept = value, color = measurement),size=1.2)+
               scale_color_manual(values = c("red", "darkblue"), name = NULL) +
              theme(panel.background = element_rect(fill = "white", colour = "grey50"),
                axis.text=element_text(size=32),
                  axis.title=element_text(size=40))+guides(color = guide_legend(title=NULL))

谢谢!

【问题讨论】:

  • See here 关于制作一个更易于人们帮助的可重现示例。没有任何数据,我们无法运行您的代码,并且您没有包含任何输出,因此不清楚您正在使用什么、您要更改什么以及您尝试如何更改它跨度>

标签: r ggplot2 legend


【解决方案1】:

正如@camille 评论的那样,如果您提供可重现的示例,您更有可能获得有用的回复。话虽如此,您可以使用guides()theme() 更改图例的属性,例如

library(tidyverse)
df <- tibble(Names = sample(letters, 100, replace = TRUE),
                 Values = runif(100, 0, 1000))

central_values <- tibble(measurement = c("mean", "median"),
                         value = c(mean(df$Values), median(df$Values)))

ggplot(df, aes(x=Values)) + 
  geom_histogram(color="darkblue", fill="lightblue", binwidth=17)+
  xlab("Number of days recorded")+ # for the x axis label
  ylab("Number of individuals")+
  geom_vline(data = central_values,
             aes(xintercept = value,
                 color = measurement), size=1.2)+
  scale_color_manual(values = c("red", "darkblue"),
                     name = NULL) +
  theme(panel.background = element_rect(fill = "white",
                                        colour = "grey50"),
        axis.text=element_text(size=12),
        axis.title=element_text(size=14)) +
  guides(color = guide_legend(title=NULL))

然后,改变图例的大小:

ggplot(df, aes(x=Values)) + 
  geom_histogram(color="darkblue", fill="lightblue", binwidth=17)+
  xlab("Number of days recorded")+ # for the x axis label
  ylab("Number of individuals")+
  geom_vline(data = central_values,
             aes(xintercept = value,
                 color = measurement), size=1.2)+
  scale_color_manual(values = c("red", "darkblue"),
                     name = NULL) +
  theme(panel.background = element_rect(fill = "white",
                                        colour = "grey50"),
        axis.text=element_text(size=12),
        axis.title=element_text(size=14)) +
  guides(color = guide_legend(title=NULL, keywidth = 2, keyheight = 3,
                              label.theme = element_text(size = 16)))

您可以通过theme()更改位置,例如

ggplot(df, aes(x=Values)) + 
  geom_histogram(color="darkblue", fill="lightblue", binwidth=17)+
  xlab("Number of days recorded")+ # for the x axis label
  ylab("Number of individuals")+
  geom_vline(data = central_values,
             aes(xintercept = value,
                 color = measurement), size=1.2)+
  scale_color_manual(values = c("red", "darkblue"),
                     name = NULL) +
  theme(panel.background = element_rect(fill = "white",
                                        colour = "grey50"),
        axis.text=element_text(size=12),
        axis.title=element_text(size=14),
        legend.position = "top") +
  guides(color = guide_legend(title=NULL, keywidth = 2, keyheight = 3,
                              label.theme = element_text(size = 16)))

这是你想要达到的目标吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 2023-04-05
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    相关资源
    最近更新 更多