2011-01-18 148 views
1

我有一个包含三个变量的数据集。一个连续的独立变量,一个连续的因变量和一个二元变量,用于分析如何进行测量。使用ggplot,我知道,我可以由产品类别的彩色点的散点图:R:用ggplot2绘制上下界

g <- ggplot(dataset, aes(independent, dependent)) 
g + geom_point(aes(color=catagory)) 

不过,我想知道是否有一种方法,使一个图形,其中有一条垂直线正在添加了从产品类别0和一条垂直线,从产品类别1点下去的点它看起来是这样的:

- |  | | 
| |  | | 
| |  | | 
| |  | | 
- |  | o | 
| |  | | | 
| | o | | | 
| | o | | | | 
- | | | o | o 
| | | |  | 
| o | |  | 
|  | |  | 
+----|-----|-----|-----|-----| 

之所以想这样的情节是一类代表一个上限(点线条向下),一个代表下界(线条向上的点)。有了这些线将可以很容易想象这是这些边界之间的区域,并绘制在上面的功能是否能准确地代表数据:

- |  | | 
| |  | | 
| |  | | 
| |  | | 
- |  | o | _____ 
| |  | |_|__/ 
| | o |_/| | 
| | o |__/| | | 
- | | /| o | o 
| _|_|/ |  | 
|/o | |  | 
|/ | |  | 
+----|-----|-----|-----|-----| 

如果有任何的方式来做到这一点使用ggplot或其他任何为R图库,我很想知道如何。但是,如果不可能,我会乐于听到其他方式来表示这些数据。根据颜色简单地区分分类不足以强调分类的上/下限性质,以达到我的目的。

+0

sample data por favor? – Chase 2011-01-18 23:47:43

回答

2

以下内容可能适用于您,我希望我能很好地理解这个问题。

首先,为数据帧生成一些随机数据,因为没有提供样本数据。随机数会使情节丑,我希望它看起来与真实数据较好:根据“产品类别”

dataset <- data.frame (
    independent = runif(100), 
    dependent = runif(100), 
    catagory = floor(runif(100)*2)) 

接下来,找到剧情的上部或下部(=分钟/值的最大值)对于每种情况:

dataset$end[which(dataset$catagory == 0)] <- max(dataset$dependent) 
dataset$end[which(dataset$catagory == 1)] <- min(dataset$dependent) 

现在,我们可以使用geom_segment()绘制数据。

g <- ggplot(dataset, aes(independent, dependent, min, max)) 
g + geom_segment(aes(x=independent, y=dependent, xend=independent, yend=end, color=catagory)) 

alt text

请注意,我还添加了+ theme_bw() + opts(legend.position = "none")参数的情节,因为它看起来非常奇怪随机DATAS。

+0

这看起来不错。你完美地理解了这个问题,我很欣赏这种回应。非常感谢。 – Wilduck 2011-01-19 05:28:22