0

我有以下数据框:

> df <- read.table("throughputOverallSummary.txt", header = TRUE)
> df
  ExperimentID clients connections msgSize      Mean Deviation     Error
1           77     100          50    1999 142.56427  8.368127 0.4710121
2           78     200          50    1999 284.22705 13.575943 0.3832827
3           79     400          50    1999 477.48997 44.820831 0.7538666
4           80     600          50    1999 486.87102 49.916391 0.8240869
5           81     800          50    1999 488.84899 51.422070 0.8462216
6           82      10          50    1999  15.23667  1.995150 1.0498722
7           83      50          50    1999  71.94000  5.197893 0.5793057

以及一些处理上述数据帧 df 的代码:

msg_1999 = subset(df, df$msgSize == 1999)
if (nrow(msg_1999) > 0) {
    limits = aes(ymax = msg_1999$Mean + msg_1999$Deviation, ymin = msg_1999$Mean -   
    msg_1999$Deviation)
    ggplot(data = msg_1999, aes(clients, Mean, color = as.factor(connections), group =     
       as.factor(connections))) +
       geom_point() + geom_line() +
       geom_errorbar(limits, width = 0.25) +
       xlab("Number of Clients") +
       ylab("Throughput (in messages/second)") +
       labs(title = "Message size 1999 bytes", color = "Connections") 

    ggsave(file = "throughputMessageSize1999.png")
}

我的问题是图中的误差线看起来像点范围。误差条上端和下端的水平条缺失。

在此处输入图像描述

理想情况下,误差线应该是这样的:

在此处输入图像描述

为什么我的代码中的错误栏看起来不同?

4

1 回答 1

2

该参数与您给出width的比例相同 ,其中轴的范围为 0-800。宽度为 0.25 的条在此图表上不可见。如果您不设置宽度值,那么会猜到一些合理的东西。xwidth = 0.25x

ggplot(data = df, aes(clients, Mean, color = as.factor(connections), group =     
                                as.factor(connections))) +
    geom_point() + geom_line() +
    geom_errorbar(aes(ymax = Mean + Deviation, ymin=Mean-Deviation)) +
    xlab("Number of Clients") +
    ylab("Throughput (in messages/second)") +
    labs(title = "Message size 1999 bytes", color = "Connections")

在此处输入图像描述

请注意,如果您想预定义您的mapping参数,您仍然应该像在调用geom_xxxx. aes(and ggplot) 做了一些花哨的步法,以确保在绘图时在正确的环境中对其进行评估。

因此以下将起作用

limits <- aes(ymax = Mean + Deviation, ymin=Mean-Deviation)
ggplot(data = df, aes(clients, Mean, color = as.factor(connections), group =     
                                as.factor(connections))) +
    geom_point() + geom_line() +
    geom_errorbar(limits) +
    xlab("Number of Clients") +
    ylab("Throughput (in messages/second)") +
    labs(title = "Message size 1999 bytes", color = "Connections") 
于 2013-11-14T04:12:13.230 回答