【问题标题】:Adding labels and changing x-axis scale in ggplot2在 ggplot2 中添加标签和更改 x 轴比例
【发布时间】:2020-04-27 14:37:56
【问题描述】:

感谢这个论坛的帮助,我设法使用ggplot2 绘制了一条平均线和一条五分位线。

DF<-data.frame(DOB = c(1965, 1 949, 1964, 1979, 1960, 1992, 1991, 1963, 1964, 1992, 1971, 1965),
               trip.duration.hr =c(3.36, 2.25, 5.31, 10.7, 1.96, 4.33, 23.55, 3.92, 5.46, 3.45, 13.72, 7.33))

我在下面插入了我的代码。我想做的是

  1. 为绘图区域内的平均线和五分之一线添加标签。
  2. 它目前将 x 轴刻度分解为 20 年间隔。所以 1940, 1960 等等。我可以把它缩小一点,所以每 5 年 是 x 轴上的单独标记点吗?
    ggplot(DF, aes(x=DOB, y=trip.duration.hr)) +
      geom_jitter(alpha=1/10) +
      geom_line(stat = 'summary', fun.y = "mean", color="orange", size=1) +
      geom_line(stat = 'summary', fun.y = "quantile", fun.args = list(probs = .9), linetype=2, color="red")

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    对于您的问题 1),一种可能的解决方案是使用来自 ggrepel 包的 geom_text_repel 添加文本标签。但是,您必须决定要放置它的位置(这里我选择 1965)。

    对于您的问题 2),您只需将 breaks 添加到 scale_x_continuous 即可。

    总而言之,你可以这样做:

    library(ggplot2)
    library(ggrepel)
    
    ggplot(DF, aes(x=DOB, y=trip.duration.hr)) +
      geom_jitter(alpha=1/10) +
      geom_line(stat = 'summary', fun = "mean", color="orange", size=1) +
      geom_line(stat = 'summary', fun = "quantile", fun.args = list(probs = .9), linetype=2, color="red")+
      scale_x_continuous(breaks = seq(1950,1995, by = 5))+
      geom_text_repel(data = subset(aggregate(trip.duration.hr ~ DOB, DF, mean), DOB == 1965),
                      label = "Mean", color = "orange", nudge_x = 5, nudge_y = 1)+
      geom_text_repel(data = subset(aggregate(trip.duration.hr ~ DOB, DF, "quantile", probs = 0.9), DOB == 1965),
                      label = "quantile", color = "red", nudge_x = -5, nudge_y = 1)
    

    它回答了你的问题吗?

    【讨论】:

    • 不客气 ;) 如果您对此答案感到满意,请随时接受和/或投票,以便让人们知道这个问题已得到解决。更多信息在这里:stackoverflow.com/help/someone-answers
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 2021-08-02
    • 1970-01-01
    相关资源
    最近更新 更多