我有一个数据框,我想绘制如图1所示。
图1只是一个例子。我知道图中的值是错误的。
答案 0 :(得分:1)
我回应@divibisan的评论,即如果您只是想快速绘制带有误差线的图表,那么您应该看看ggplot2::geom_errorbar
。
但是,如果您想对绘图表面的各个方面进行精细控制,但又要花很多笔钱,那么这是一种进行方法:
# example data
randos <- runif(5, 0, 1)
df <- data.frame(
v1 = randos,
v2 = randos+1,
v3 = randos+2
)
# create empty plot
plot(x=1:nrow(df), y=1:nrow(df), pch=NA, # plot some data but don't show it
ylim=c(0, ceiling(max(df)+2)), # adjust y axis limit
xaxt="n", yaxt="n", # remove axes
bty="n", # remove box around plot
xlab="", ylab="", main="") # label axes and title
# add vertical lines
for(i in 1:nrow(df)) {
points(x=c(i,i), y=c(df$v1[i], df$v3[i]), type="l")
}
# add horizontal lines
points(x=1:nrow(df), y=df$v2, type="l")
# add points
points(x=1:nrow(df), y=df$v1, pch=15, col="forestgreen")
points(x=1:nrow(df), y=df$v2, pch=19, col="forestgreen")
points(x=1:nrow(df), y=df$v3, pch=8, col="forestgreen")
# add back axes
axis(side=1, 1:nrow(df))
axis(side=2, 0:(ceiling(max(df))+2))
# an example of how to add text
text(x=1:nrow(df), y=df$v3, labels=format(df$v3,digits=2), pos=3)