将排列数据添加到R中的点图
我有一张表,上面有平均值和四分位区间。我想创建一个点图,点会显示这个平均值,一个横条会穿过点,以显示四分位间距。换句话说,圆点将位于一条线的中点,其长度将等于我的四分位间距数据。我在R工作 比如说,将排列数据添加到R中的点图,r,plot,R,Plot,我有一张表,上面有平均值和四分位区间。我想创建一个点图,点会显示这个平均值,一个横条会穿过点,以显示四分位间距。换句话说,圆点将位于一条线的中点,其长度将等于我的四分位间距数据。我在R工作 比如说, labels<-c('a','b','c','d') averages<-c(10,40,20,30) ranges<-c(5,8,4,10) dotchart(averages,labels=labels) labelsggplot2有一个很好的工具来实现这一点: librar
labels<-c('a','b','c','d')
averages<-c(10,40,20,30)
ranges<-c(5,8,4,10)
dotchart(averages,labels=labels)
labelsggplot2有一个很好的工具来实现这一点:
library(ggplot2)
labels<-c('a','b','c','d')
averages<-c(10,40,20,30)
ranges<-c(5,8,4,10)
x <- data.frame(labels,averages,ranges)
ggplot(x, aes(averages,labels)) +
geom_point() +
geom_errorbarh(aes(xmin=averages-ranges,xmax=averages+ranges))
库(ggplot2)
标签对于记录,这里有一个lattice解决方案,它使用了Hmisc包中的两个函数:
library(lattice)
library(Hmisc)
labels<-c('a','b','c','d')
averages<-c(10,40,20,30)
ranges<-c(5,8,4,10)
low <- averages - ranges/2
high <- averages + ranges/2
d <- data.frame(labels, averages, low, high)
Dotplot(labels ~ Cbind(averages, low, high), data = d,
col = 1, # for black points
par.settings = list(plot.line = list(col = 1)), # for black bars
xlab = "Value")
库(晶格)
图书馆(Hmisc)
标签另一种方法,使用base
labels <- c('a', 'b', 'c', 'd')
averages <- c(10, 40, 20, 30)
ranges <- c(5, 8, 4, 10)
dotchart(averages, labels=labels, xlab='average', pch=20,
xlim=c(min(averages-ranges), max(averages+ranges)))
segments(averages-ranges, 1:4, averages+ranges, 1:4)
太棒了!为了确保我理解,每次最后一行应该是(范围/2),以得到平均值每边范围的一半,对吗?取决于你如何定义范围,但如果它们代表实际范围(最小值和最大值之间的差异),则不是“是”。如果它们是标准误差数字,那么我在上面如何处理它们就是您所需要的。