R 在绘图上生成线条

R 在绘图上生成线条,r,ggplot2,R,Ggplot2,我正试图在ggplot上为我的geom\u vline发布一个图例。 我正在绘制一个数据集(见下文)并绘制到Vline(一个是平均值,一个是用户数据) 以下是数据: orig_quant std_curve_rsq slope cluster_density 1 0.9989831 1.036102 240000 2 0.9991298 1.022148 240000 3 0.9996155 1.036922

我正试图在ggplot上为我的
geom\u vline
发布一个图例。 我正在绘制一个数据集(见下文)并绘制到Vline(一个是平均值,一个是用户数据)

以下是数据:

orig_quant
  std_curve_rsq    slope cluster_density
1     0.9989831 1.036102          240000
2     0.9991298 1.022148          240000
3     0.9996155 1.036922          240000
4     0.9989831 1.036102          240000
5     0.9989831 1.036102          240000

flowcell_batch_value
  std_curve_rsq     slope cluster_density
1        0.9799 0.9623146          240000
这是我的剧本:

std_plot = ggplot(data = orig_quant, aes(orig_quant$std_curve_rsq)) +
    geom_histogram(breaks = seq(min(orig_quant$std_curve_rsq) -sd(orig_quant$std_curve_rsq),
        max(orig_quant$std_curve_rsq)+sd(orig_quant$std_curve_rsq), by =
        sd(orig_quant$std_curve_rsq)),
        col="red", fill="green", alpha = .2) +
    labs(title = "Quantitation Std_Curve_Rsq") +
    labs(x = "std_curve_rsq", y = "Frequency") +
#need mean value in legend

#need user value in legend as well
    geom_vline(aes(xintercept = flowcell_batch_value, na.rm=T), color = "blue",
        linetype = "solid", size=2, show.legend = TRUE)

作为参考,
orig\u quant
是一组数据,
std\u curve\u rsq
是一列数据。我也在做的是在数据集的平均值处画一条线,在用户数据所在的位置画一条线(
flowcell\u batch\u value\u std\u curve

我想要的是有一个图例,说明这两行的值。平均值和用户值。我试着用来自的例子来做,但它一直不起作用……你知道为什么它一直不起作用吗


我添加了一个我目前得到的图表。如您所见,我生成了条形图(良好)和两条线,一条用于平均值(红色)和用户数据(蓝色)。理想情况下,我想要一个图例,说明这两条线和这些线的值。但由于某些原因,它不起作用。

使用ggplot2,您无法真正在图例中添加所需的所有内容,而只能添加映射到美学(颜色、形状、大小..)的变量。我建议你使用注释,因为它不能再现你的情节。但正如adiana已经说过的那样,类似的东西将工作
std_plot+annotation(“text”,x=std_curve_rsq[1],y=2,label=std_curve_rsq[1])
感谢您的帮助。你能给我发个短信为什么不给你复制,也许我能帮你。此外,我还尝试添加线条注释(“text”,x=std\u curve\u rsq[1],y=2,label=std\u curve\u rsq[1]),但似乎没有帮助。我的阴谋没有改变,好吧,我成功了。但问题是,我试图添加两个注释。我需要添加2,一个用于平均值,一个用于用户数据。当我加上一个,另一个就消失了。我在试这个。std\u plot+annotation(“text”,x=mean(orig\u quant$std\u curve\u rsq,y=30,label=“Some text”)std\u plot+annotation(“text”,x=flowcell\u batch\u value$std\u curve\u rsq,y=30,label=“Some text”)它将绘制第一条曲线,但如果我运行第二个命令,它将绘制该曲线并删除第一条。