带有std错误的散点图

时间:2013-09-23 15:21:46

标签: r

大家好,特别是所有R程序员,我需要你的帮助。我正在尝试使用标准错误栏制作散点图![在此输入图像描述] [1]但我无法管理它。到目前为止,我可以制作带有标签和45度角线的散点图(我也需要)。如果有人帮助我或在我现有的代码中添加一些对我有用的代码。

我的代码

Dataset <- read.table("AvgDis.csv",header=TRUE, sep="", 
                      na.strings="NA", dec=".", 
                      strip.white=TRUE)

plot(Dataset$True,Dataset$False, 
     xlim=c(0,100), ylim=c(0,100), 
     main="Average % of disorder", 
     xlab="True", ylab="False", 
     pch=19,col= "blue")

text(Dataset$True,Dataset$False, 
     labels=Dataset$MotifId, 
     cex= 0.7, pos=3)

abline(0,1)

数据,我正在使用:

   False        True     MotifId
54.1666675    33.33333    aps
35.2040825    48.57143    dbox
44.3055575    94.44444    ken
70.37037      60          mdm2
1.6666675      0          met
72.222225    100          ptk
46.9212975    68.51852    scftrcp1
55.5555575    70.83333    siah

1 个答案:

答案 0 :(得分:2)

首先,我要创建一个虚假的数据框,因为您发布数据的方式使得复制和粘贴不方便。

# Make a fake dataset since it is inconvenient to copy & paste the data you show
set.seed(13)
False <- rnorm(10, mean=50, sd=10)
True <- rnorm(10, mean=50, sd=10)
MotifId <- letters[1:10]
Dataset <- data.frame(False, True, MotifId)

你需要以某种方式计算标准误差。让我们假设所有数据点都有相同的标准误差:

Dataset$stderr <- 7 # This will recycle to the number of rows of Dataset

现在按照建议here

创建你的情节并将误差条添加为arrow s
plot(Dataset$True,Dataset$False, 
     xlim=c(0,100), ylim=c(0,100), 
     main="Average % of disorder", 
     xlab="True", ylab="False", 
     pch=19,col= "blue")
text(Dataset$True,Dataset$False, 
     labels=Dataset$MotifId, 
     cex= 0.7, pos=3)
abline(0,1)
arrows(x0=Dataset$True, y0=Dataset$False - Dataset$stderr, 
       x1=Dataset$True, y1=Dataset$False + Dataset$stderr, 
       angle=90, code=3, length=0.05)

enter image description here

从长远来看,我认为最好使用ggplot2数据可视化包

require(ggplot2)
# Build the plot from layers 
p <- ggplot(Dataset, aes(x=True, y=False, label=MotifId)) + 
       geom_point() + 
       geom_text(, vjust=1, hjust=1) +
       geom_errorbar(aes(ymin=False-stderr, ymax=False+stderr), width=1) +
       geom_abline(slope=1, intercept=0) +
       xlim(c(0, 100)) +
       ylim(c(0, 100)) +
       ggtitle("Average % of disorder") +
       theme_bw()
print(p)

enter image description here