R中2个变量值之间的绘图条
Drawing bar between 2 variable values in R
我有以下数据:
> 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))
我想创建一个类似于以下的图表(这是手动绘制的,比例不准确):
如何做到这一点(最好使用 ggplot)?感谢您的帮助。
至少这是一个开始
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("")
产生
我有以下数据:
> 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))
我想创建一个类似于以下的图表(这是手动绘制的,比例不准确):
如何做到这一点(最好使用 ggplot)?感谢您的帮助。
至少这是一个开始
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("")
产生