我想知道是否可以使用R:
自动绘制像这样的图形
我必须说前一张图片是使用Inkscape手动完成的。但是,我想知道是否可以使用R自动构建这种图像。这将节省大量时间。
我有原始数据:
1 10.73 9.31 10.75 7.72 5.98 7.97
1 9.27 8.61 9.28 7.00 6.25 8.50
1 8.49 7.80 8.50 6.26 6.54 9.11
2 11.45 10.00 11.46 8.47 6.58 8.86
2 10.76 10.00 10.03 7.75 6.88 9.45
2 10.00 9.34 9.25 7.00 7.19 10.12
第一列是类别(在这种情况下,只有两个类别,1和2)。每个类别的上排是95%的上限CL,每个类别的下排是95%的CL。其他行是平均值。
在这种情况下,我有6个不同的样本,它们显示在类别列之后的6列中。
答案 0 :(得分:4)
你可以在ggplot中首先重塑数据,这样每行都是一个置信区间,为你的分组数据获得合适的x轴间距:
geom_rect
然后你可以使用geom_segment
和library(ggplot2)
ggplot(plot.dat, aes(xmin=x-.03, xmax=x+.03, ymin=lb, ymax=ub)) +
geom_rect(fill=NA, color="black") +
geom_segment(aes(x=x-.03, xend=x+.03, y=mid, yend=mid)) +
theme_bw() +
scale_x_continuous(breaks=c(1, 2)) +
ylim(0, max(plot.dat$ub)) +
xlab("Group") +
ylab("Value")
来绘制形状:
{{1}}