R 如何用边界绘制数据

R 如何用边界绘制数据,r,data-visualization,R,Data Visualization,我有如下数据: yr X lower upper 1 2004 0.2852 0.3927 0.1888 2 2005 0.3710 0.2385 0.5093 3 2006 0.3297 0.2177 0.4557 4 2007 0.2230 0.1424 0.3138 5 2008 0.3028 0.1952 0.4237 6 2009 0.3906 0.2798 0.5226 7 2010 0.3382 0.2343 0.4467 以下是一些可复制的数据: dt &

我有如下数据:

    yr      X  lower  upper
1 2004 0.2852 0.3927 0.1888
2 2005 0.3710 0.2385 0.5093
3 2006 0.3297 0.2177 0.4557
4 2007 0.2230 0.1424 0.3138
5 2008 0.3028 0.1952 0.4237
6 2009 0.3906 0.2798 0.5226
7 2010 0.3382 0.2343 0.4467
以下是一些可复制的数据:

dt <- structure(list(yr = 2004:2010, X = c(0.2852, 0.371, 0.3297, 0.223, 0.3028, 0.3906, 0.3382), lower = c(0.3927, 0.2385, 0.2177, 0.1424, 0.1952, 0.2798, 0.2343), upper = c(0.1888, 0.5093, 0.4557, 0.3138, 0.4237, 0.5226, 0.4467)), .Names = c("yr", "X", "lower", "upper"), class = "data.frame", row.names = c(NA, -7L))
但我不喜欢这样的结果——它似乎简单而乏味:

您可以使用功能区而不是错误栏

dt <- structure(list(yr = 2004:2010, 
    X = c(0.2852, 0.371, 0.3297, 0.223, 0.3028, 0.3906, 0.3382), 
    lower = c(0.3927, 0.2385, 0.2177, 0.1424, 0.1952, 0.2798, 0.2343), 
    upper = c(0.1888, 0.5093, 0.4557, 0.3138, 0.4237, 0.5226, 0.4467)),
  .Names = c("yr", "X", "lower", "upper"), class = "data.frame", 
    row.names = c(NA, -7L))
library(ggplot2)
ggplot(dt, aes(x=yr, y=X, group=1, ymin = lower, ymax = upper)) +
    geom_ribbon(alpha = 0.2) +
    geom_line() +
    geom_point(shape=21, size=3, fill="blue") +
    ylim(0,0.6)

dt该图信息丰富,适合您的数据。你还想看什么?背景中的颜色渐变?轴文本的亮丽颜色?点的标签?具体点。@Roland,我不太确定。我只是觉得很无聊。背景中的颜色渐变可能很好,谢谢。但是为什么色带在2004年到2005年之间收缩为零呢?请仔细查看您的
2004
下限和上限。
dt <- structure(list(yr = 2004:2010, 
    X = c(0.2852, 0.371, 0.3297, 0.223, 0.3028, 0.3906, 0.3382), 
    lower = c(0.3927, 0.2385, 0.2177, 0.1424, 0.1952, 0.2798, 0.2343), 
    upper = c(0.1888, 0.5093, 0.4557, 0.3138, 0.4237, 0.5226, 0.4467)),
  .Names = c("yr", "X", "lower", "upper"), class = "data.frame", 
    row.names = c(NA, -7L))
library(ggplot2)
ggplot(dt, aes(x=yr, y=X, group=1, ymin = lower, ymax = upper)) +
    geom_ribbon(alpha = 0.2) +
    geom_line() +
    geom_point(shape=21, size=3, fill="blue") +
    ylim(0,0.6)