【问题标题】:ggplot2 facets: Different annotation text for each plotggplot2 facets:每个图的不同注释文本
【发布时间】:2016-07-16 19:28:04
【问题描述】:

我有以下名为 Raw_Data 的生成数据框:

    Time Velocity Type
1    10        1    a
2    20        2    a
3    30        3    a
4    40        4    a
5    50        5    a
6    10        2    b
7    20        4    b
8    30        6    b
9    40        8    b
10   50        9    b
11   10        3    c
12   20        6    c
13   30        9    c
14   40       11    c
15   50       13    c

我用 ggplot2 绘制了这些数据:

ggplot(Raw_Data, aes(x=Time, y=Velocity))+geom_point() + facet_grid(Type ~.)

我有对象:Regression_a、Regression_b、Regression_c。这些是每个图的线性回归方程。每个绘图应显示相应的方程。

使用注释在每个图上显示特定方程:

annotate("text", x = 1.78, y = 5, label = Regression_a, color="black", size = 5, parse=FALSE)

我尝试使用以下代码解决此问题:

Regression_a_eq <- data.frame(x = 1.78, y = 1,label = Regression_a,
                       Type = "a")
p <- x + geom_text(data = Raw_Data,label = Regression_a)

这并没有解决问题。每个图仍然显示 Regression_a,而不仅仅是绘制 a

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您可以将表达式作为字符值放入具有与数据数据框中相同的唯一 Type 的新数据框中,并使用 geom_text 添加它们:

    regrDF <- data.frame(Type = c('a','b','c'), lbl = c('Regression_a', 'Regression_b', 'Regression_c'))
    
    ggplot(Raw_Data, aes(x = Time, y = Velocity)) +
      geom_point() + 
      geom_text(data = regrDF, aes(x = 10, y = 10, label = lbl), hjust = 0) +
      facet_grid(Type ~.)
    

    给出:

    您可以将regrDF$lbl 中的文本值替换为适当的表达式。

    【讨论】:

      【解决方案2】:

      如果我们在水平和垂直方向上都有方面,则只是对采用的答案的补充。

      regrDF <- data.frame(Type1 = c('a','a','b','b'),
                           Type2 = c('c','d','c','d'),
                           lbl = c('Regression_ac', 'Regression_ad', 'Regression_bc', 'Regression_bd'))    
      ggplot(Raw_Data, aes(x = Time, y = Velocity)) + 
             geom_point() + 
             geom_text(data = regrDF, aes(x = 10, y = 10, label = lbl), hjust = 0) +
             facet_grid(Type1 ~ Type2)
      

      答案很好但仍然不完美,因为我不知道如何同时合并数学表达式和换行符 (Adding a newline in a substitute() expression)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-06
        • 1970-01-01
        • 2021-03-02
        • 2011-11-03
        • 2021-06-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多