我可以使用以下代码绘制一个圆点图:
library("Hmisc")
df <- data.frame(ID=c("a","b","c","d","e"),a=c(1:5),b=c(2:6))
dotchart3(as.matrix(df[,c(2,3)]),df[,c(1)],pch=c(1,2))
但是如何在点的上方或下方添加点的数值?
答案 0 :(得分:2)
您可以使用text
,其中x位置作为其第一个参数,y位置作为其第二个参数,标签值作为其第三个参数。这些是矢量化的,因此您只需传递data.frame的列。 pos
参数指定指定点(1)下面的标签:
text(df[,2], df[,1], df[,2], pos = 1)
text(df[,3], df[,1], df[,3], pos = 1)
或高于指定的点(3):
text(df[,2], df[,1], df[,2], pos = 3)
text(df[,3], df[,1], df[,3], pos = 3)
以下是后一种配置的示例:
答案 1 :(得分:1)
这应该可以解决问题:
library("Hmisc")
df <- data.frame(ID=c("a","b","c","d","e"),a=c(1:5),b=c(2:6))
dotchart3(as.matrix(df[,c(2,3)]),df[,c(1)],pch=c(1,2))
#a function where the two first input are identical to dotchart3
addVal = function(x,labels,
decimals=0,
cex=0.1,
x.offset=0,
y.offset=.2) {
len=length(labels)
for(j in 1:dim(x)[2]) text(x = x[,j]+x.offset,
y = (1:len)+y.offset,
lab = paste("val=",round(x[,j],decimals)),
cex=cex)
}
addVal(df[,2:3],df[,1],cex=.7)