R中2个变量值之间的绘图条

时间:2015-01-04 03:44:32

标签: r ggplot2 bar-chart

我有以下数据:

> mydf
  name var1 var2
1   aa  120   80
2   bb  128   86
3   cc  132   98

> dput(mydf)
structure(list(name = structure(1:3, .Label = c("aa", "bb", "cc"
), class = "factor"), var1 = c(120L, 128L, 132L), var2 = c(80L, 
86L, 98L)), .Names = c("name", "var1", "var2"), class = "data.frame", row.names = c(NA, 
-3L))

我想创建一个类似于以下的图表(手动绘制并且不准确缩放):

enter image description here

如何做到这一点(最好用ggplot)?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

这至少是一个开始

ggplot(transform(mydf, xname=as.numeric(name))) + 
    geom_rect(aes(xmin=xname-.2, xmax=xname+.2, ymin=var1, ymax=var2)) + 
    geom_text(aes(x=xname, y=var1+5, label=var1)) + 
    geom_text(aes(x=xname, y=var2-5, label=var2)) + 
    scale_x_continuous(breaks=1:nlevels(mydf$name), labels=levels(mydf$name)) + 
    ylab("units") + xlab("")

产生

enter image description here