错误栏结束丢失

时间:2014-09-09 14:17:31

标签: r ggplot2

以下示例代码:

require(ggplot2)

stats <- data.frame(Day=0:5, Mean=c(3.2, 2.7, 0.8, 0.2, 0, 0), Q10=0.0, Q90=c(7.48, 4.0, 2.2, 1.2, 0, 0))

plot <- ggplot(stats, aes(x=Day, y=Mean)) +
  geom_point(size=4) +
  geom_line(size=1.5) +
  geom_errorbar(aes(ymin=Q10, ymax=Q90), width=0.2) +
  ggtitle("Example") +
  ylab("Pain Score") +
  scale_x_continuous("Day", expand=c(0.02,0), limits=c(0,15), breaks=0:15, labels=c("DOS", 1:15)) +
  scale_y_continuous("Pain Score", expand=c(0.02,0), limits=c(0,10), breaks=0:10)

print(plot)

制作以下图:

我一直无法弄清楚为什么最左边的错误栏末端没有'T'。

2 个答案:

答案 0 :(得分:4)

问题在于您的scale_x_continuous()声明。您将limits=从0开始设置,但是对于第一个条“T”超出此限制,因此将其删除(您删除了geom_path()一行的警告)。如果您将limits=设置为例如-0.3中的星号,则会显示“T”。

  + scale_x_continuous("Day", expand=c(0.02,0), limits=c(-0.3,15), 
        breaks=0:15, labels=c("DOS", 1:15))

enter image description here

答案 1 :(得分:1)

请注意警告:

Warning message:
Removed 1 rows containing missing values (geom_path).

使用coord_cartesian指定限制而不丢弃数据:

plot <- ggplot(stats, aes(x=Day, y=Mean)) +
  geom_point(size=4) +
  geom_line(size=1.5) +
  geom_errorbar(aes(ymin=Q10, ymax=Q90), width=0.2) +
  ggtitle("Example") +
  ylab("Pain Score") +
  scale_x_continuous("Day", breaks=0:15, labels=c("DOS", 1:15)) +
  scale_y_continuous("Pain Score",  breaks=0:10) +
  coord_cartesian(xlim = c(-0.3, 15.3), ylim = c(-0.3,10.3))

print(plot)