gpt4 book ai didi

r - 使用 geom_text() 用数值标记上下置信区间条

转载 作者:行者123 更新时间:2023-12-03 23:44:07 25 4
gpt4 key购买 nike

问题
我使用包 ggplot() 生成了图 1(参见下面的 R 代码),我的最终目标是通过对齐在图中将置信区间的上限和下限标记为 3 个有效数字(如下表所示)这些带有上下误差线的标签(参见图 3)。
我尝试使用 geom_text() 操作代码(图 2)(参见下面的 R 代码);然而,我没有标记任何一个置信区间条,而是不小心在每个月的每个平均月点上放置了错误的数字标签(不在我的数据表中)。当我运行情节 2 的代码时,背景网格和背景颜色也回来了,我希望将背景中的情节保留为空白(情节 1 + 3)。
所需输出
我想通过以相同的方式在表中标记相关的 ci_low 和 ci_high 值来生成类似于图 3(见下文)的图。
如果有人能帮我解决这个问题,我将不胜感激。
谢谢 :)
表 key :

  • ci_low = 下置信区间
  • ci_high = 更高的置信区间
  • S.E = 标准误差
  • Mean.Month = 每月平均观察次数
  • sd.Month = 每月标准差

  • 表:
    Merged_Blue_Whale_Summarised <- read.table(text = "
    Month Counts Mean.Month sd.Month S.E ci_low ci_hi
    1 January 113 37.66667 5.686241 3.282953 31.232080 44.10125
    2 February 94 31.33333 4.932883 2.848001 25.751251 36.91542
    3 March 111 37.00000 5.291503 3.055050 31.012101 42.98790
    4 April 111 37.00000 12.288206 7.094599 23.094586 50.90541
    5 May 33 11.00000 7.937254 4.582576 2.018152 19.98185
    6 July 16 8.00000 1.414214 1.000000 6.040000 9.96000
    7 August 89 29.66667 9.291573 5.364492 19.152262 40.18107
    8 September 86 28.66667 16.441817 9.492687 10.061000 47.27233
    9 October 82 27.33333 12.503333 7.218803 13.184480 41.48219
    10 November 81 27.00000 17.691806 10.214369 6.979837 47.02016
    11 December 101 33.66667 4.041452 2.333333 29.093333 38.24000", header = TRUE)
    # fix the month names order
    Merged_Blue_Whale_Summarised$Month <- factor(Merged_Blue_Whale_Summarised$Month, levels = month.name)
    R-code
    library(ggplot2)

    ##Open a new window to plot the figure showing mean, and confidence intervals per month
    dev.new()

    ####Code for plot 1

    p = ggplot(Merged_Blue_Whale_Summarised, aes(x=Month, y=Mean.Month, ymin=ci_low, ymax=ci_hi)) +
    geom_line(aes(group=1), size=1) +
    geom_errorbar(width=0.2, color="blue") +
    geom_point(size=2) +
    geom_label(aes(y=60, label=paste0("n=", Counts)))

    p + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
    panel.background = element_blank(), axis.line = element_line(colour = "black"))

    ggsave("p.png", p)

    p

    ##Code for plot 2

    p = ggplot(Merged_Blue_Whale_Summarised, aes(x=Month, y=Mean.Month, ymin=ci_low, ymax=ci_hi)) +
    geom_line(aes(group=1), size=1) +
    geom_errorbar(width=0.2, color="blue") +
    geom_point(size=2) +
    geom_label(aes(y=60, label=paste0("n=", Counts)))

    p + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
    panel.background = element_blank(), axis.line = element_line(colour = "black"))

    p + geom_text(aes(label= sprintf("%.1f", ci_low, ci_hi), vjust=1.6,
    color="black",
    size=3.5))

    p
    情节 1
    enter image description here
    地块 2
    enter image description here
    地块 3
    enter image description here

    最佳答案

    我们需要调用 geom_text 两次,尝试:

    ggplot(Merged_Blue_Whale_Summarised, aes(x=Month, y=Mean.Month, ymin=ci_low, ymax=ci_hi)) +
    geom_line(aes(group=1), size=1) +
    geom_errorbar(width=0.2, color="blue") +
    geom_point(size=2) +
    geom_label(aes(y=60, label=paste0("n=", Counts))) +
    # add high values
    geom_text(data = Merged_Blue_Whale_Summarised,
    aes(x = Month, y = ci_hi, label= sprintf("%.1f", ci_hi), vjust=-1.6)) +
    # add low values
    geom_text(data = Merged_Blue_Whale_Summarised,
    aes(x = Month, y = ci_low, label= sprintf("%.1f", ci_low), vjust=1.6)) +
    theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
    panel.background = element_blank(), axis.line = element_line(colour = "black"))
    enter image description here

    关于r - 使用 geom_text() 用数值标记上下置信区间条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64044298/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com