旋转ggplot图例中的垂直线

use*_*230 1 r ggplot2

我希望将图的图例从垂直线旋转为水平线,但保持图表中的实际线垂直。有许多黑客类型的解决方案,但我认为现在可以通过包轻松完成此操作ggstance,但我不确定如何实现它。

library(tidyverse) 
library(ggstance)
df <- tibble(x = rnorm(40))
df_stats <-
  df %>%  summarise(
    mean = mean(x), 
    median = median(x)
  ) %>% 
  gather(key = legend, value = value, mean:median)

df %>% 
  ggplot(aes(x = x)) +
  geom_histogram(bins = 20) +
  geom_vline(data = df_stats, aes(xintercept = value, color = legend))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有什么建议使用ggstance吗?谢谢

根据@Allan Cameron 评论进行编辑

由于ggstance已被最新版本的 ggplot 取代,我很高兴看到有人可能有任何解决方案?

sta*_*rja 6

您需要更改key_glyph参数,请参阅可用的key_glyphs。你需要“路径”:

library(tidyverse)
df <- tibble(x = rnorm(40))
df_stats <-
  df %>%  summarise(
    mean = mean(x), 
    median = median(x)
  ) %>% 
  gather(key = legend, value = value, mean:median)

df %>% 
  ggplot(aes(x = x)) +
  geom_histogram(bins = 20) +
  geom_vline(data = df_stats, aes(xintercept = value, color = legend),
             key_glyph = "path")
Run Code Online (Sandbox Code Playgroud)

由reprex 包(v0.3.0)于 2020-09-06 创建