0

大家好,特别是所有 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
4

1 回答 1

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

现在创建您的绘图并将误差线添加为arrows,如此处所建议

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)

在此处输入图像描述

从长远来看,我认为最好使用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)

在此处输入图像描述

于 2013-09-23T16:06:23.400 回答