R 具有离散箱线图数据的geom_路径

R 具有离散箱线图数据的geom_路径,r,ggplot2,R,Ggplot2,终于用完的想法和链接,我可以找到尝试和解释这一点,所以我需要一些帮助 我正在尝试使用cumSeg包向ggplot图表添加一个步长函数。我在中成功地做到了这一点,因此我已经习惯了函数的用法等 当我在那个线程中绘制图时,它相当简单,只使用x与y的条形图来表示x的平均值,然后我自己添加了错误条(因此它是一个16 x 2的数据帧) 我想重新创建这个图,但使用顺序箱线图而不是条形图,我已经这样做了,这次使用原始数据,16个因子中约250个观测值(与之前相同的因子) 现在,当我尝试添加一条geom_线,路径

终于用完的想法和链接,我可以找到尝试和解释这一点,所以我需要一些帮助

我正在尝试使用
cumSeg
包向ggplot图表添加一个步长函数。我在中成功地做到了这一点,因此我已经习惯了函数的用法等

当我在那个线程中绘制图时,它相当简单,只使用x与y的条形图来表示x的平均值,然后我自己添加了错误条(因此它是一个16 x 2的数据帧)

我想重新创建这个图,但使用顺序箱线图而不是条形图,我已经这样做了,这次使用原始数据,16个因子中约250个观测值(与之前相同的因子)

现在,当我尝试添加一条
geom_线
路径
步骤
时,它抱怨数据的维度不匹配,因为即使有16个因子/箱线图,现在也不再有16个观察(
错误:美学必须是长度1或与数据相同(249):x、y、颜色、组、填充

为了计算阶跃函数,我给出了16个向量的平均值,它返回一个16成员向量,而不是250(显然)

如何将阶跃函数添加到方框图中,使其了解它应与16个因子值相关?我不知道这是否是数据帧的问题,也不知道我是如何将其提供给ggplot的

我尝试在第二个数据帧中指定它,并将其作为
geom_path(data=df2)
传递,而不是像中那样继承主绘图数据,但它仍然抱怨(
错误:美学必须是长度1或与数据(16)相同):x,y,颜色,组
(下面的代码仍然是这种形式)


我不是100%清楚你想要达到什么。是这样吗

ggplot(melted_df, aes(Var1, value)) + 
  geom_boxplot()

如果您真的想在主数据帧之外计算统计数据,通常最好这样做:

ggplot(df1, aes(x, y)) + geom_point() + 
  geom_path(data = summarydf, aes(xmean, ymean))
我不确定我是如何解决这个问题的。我只能假设我以前犯了一个非常愚蠢的错误,但下面是最终产生预期结果的代码:

bp_gc <- ggplot(melted_data, aes(x=Var1, y=value*100)) + theme_bw()
bp_gc <- bp_gc + geom_rect(xmin=0, xmax=17,
                                 ymin=(operon_gc-opgc_stdev)*100,
                                 ymax=(operon_gc+opgc_stdev)*100,
                                 fill = "grey79", alpha=0.05)
bp_gc <- bp_gc + geom_rect(xmin=0, xmax=17,
                                 ymin=(genome_gc-gengc_stdev)*100,
                                 ymax=(genome_gc+gengc_stdev)*100,
                                 fill = "beige", alpha=.08)
bp_gc <- bp_gc + geom_abline(intercept=genome_gc*100, slope=0,
                                   colour="gray14", linetype=3)
bp_gc <- bp_gc + geom_abline(intercept=operon_gc*100, slope=0,
                                   colour="gray14", linetype=3)
bp_gc <- bp_gc + geom_boxplot(alpha = 0.7, fill="dodgerblue", color="gray11")
bp_gc <- bp_gc + ylab("GC Content (%)")
bp_gc <- bp_gc + xlab("Locus")
bp_gc <- bp_gc + theme(legend.position = "none",
                 axis.text.x = element_text(angle=45, hjust=1))
bp_gc <- bp_gc + coord_cartesian(ylim=c(30,60))
bp_gc <- bp_gc + geom_path(data=func_data, linetype=4, size=0.9, aes(x=x,y=y*100))

bp_gc

bp\u gc不完全正确。如果你看到我给我上一个问题的第一个链接,我指的是我在绘图上覆盖的红色虚线。在这种情况下很容易,因为
x
包含16个值(我首先进行了所有的平均)。不过,这次我使用的是“原始”数据,其中x的每个因子都有15个值(即每个箱线图代表15个y值,共有~15x16个点).ggplot现在将我的x轴数据视为大约250个元素长,而不是以前的16个元素长。但是,我添加的步长函数是16个元素长,因为它使用了每组值的平均值。那么,只需使用我答案末尾的建议,并更改
几何路径
,以获得
数据=…
参数和适当的美感c映射。(注意没有
$
)。恐怕我已经试过了(并且没有
$
-
bp也试过了)
ggplot(df, aes(Var1, value)) + 
  stat_summary(fun.y = median, geom = "path", aes(group = 1)) +
  geom_boxplot()
ggplot(df1, aes(x, y)) + geom_point() + 
  geom_path(data = summarydf, aes(xmean, ymean))
bp_gc <- ggplot(melted_data, aes(x=Var1, y=value*100)) + theme_bw()
bp_gc <- bp_gc + geom_rect(xmin=0, xmax=17,
                                 ymin=(operon_gc-opgc_stdev)*100,
                                 ymax=(operon_gc+opgc_stdev)*100,
                                 fill = "grey79", alpha=0.05)
bp_gc <- bp_gc + geom_rect(xmin=0, xmax=17,
                                 ymin=(genome_gc-gengc_stdev)*100,
                                 ymax=(genome_gc+gengc_stdev)*100,
                                 fill = "beige", alpha=.08)
bp_gc <- bp_gc + geom_abline(intercept=genome_gc*100, slope=0,
                                   colour="gray14", linetype=3)
bp_gc <- bp_gc + geom_abline(intercept=operon_gc*100, slope=0,
                                   colour="gray14", linetype=3)
bp_gc <- bp_gc + geom_boxplot(alpha = 0.7, fill="dodgerblue", color="gray11")
bp_gc <- bp_gc + ylab("GC Content (%)")
bp_gc <- bp_gc + xlab("Locus")
bp_gc <- bp_gc + theme(legend.position = "none",
                 axis.text.x = element_text(angle=45, hjust=1))
bp_gc <- bp_gc + coord_cartesian(ylim=c(30,60))
bp_gc <- bp_gc + geom_path(data=func_data, linetype=4, size=0.9, aes(x=x,y=y*100))

bp_gc