1

我有以下代码来制作我的数据图表:

library(ggplot2)
library(reshape)

sdata <- read.csv("http://dl.dropbox.com/u/58164604/sdata.csv", stringsAsFactors = FALSE)
pdata<-melt(sdata, id.vars="Var")
p<-ggplot(pdata, aes(Var,value,col=variable))
p+geom_point(aes(shape = variable),alpha=0.7)

这将创建一个图表,其中“Var”为 x 轴,“值”为 y 轴。我想做的是改变点的颜色。我希望它们不是变量名,而是它们的“Var”值。所以我希望 Var 值在 1-10 之间的所有点都是一种颜色,11-20 是另一种颜色,以此类推 21-30、31-35 和 36-41。我还希望在这些点后面有一个带阴影的色带/区域,从每个 Var 值的最高值到最低值延伸,但是这个色带也必须与这些点具有相同的颜色,只是透明度较低等级。

对于一个额外的问题,我也无法从我的示例中获取“平均”变量以显示为 geom_line 而不是 geom_point。我一直在玩这个:

 p+geom_point()+geom_line(data=pdata[which(pdata$variable=="Mean")])

但我无法让它工作。如果有人可以提供任何帮助,那就太好了。谢谢。

4

2 回答 2

1

使用cutwith options labels=F,我添加了一个用于着色的新变量。

pdata <- transform(pdata,varc =cut(pdata$Var,10,labels=F))
p<-ggplot(subset(pdata,variable!='Mean'), aes(Var,value,col=varc))
p+geom_point(aes(shape = variable),alpha=0.7)+
 geom_line(data=subset(pdata,variable =='Mean'),size=2)

编辑:功能区部分

我不明白功能区的一部分(也许如果你能更多地解释上下值),但我认为在这里我们可以简单地使用 geom-polygon

last_plot()+ geom_polygon(aes(fill=varc, group=variable),alpha=0.3,linetype=3) 

在此处输入图像描述

于 2013-01-17T19:36:36.620 回答
0

关于您的第一个问题,您可以使用该cut功能将连续数据分类。例如:

with(mtcars, cut(mpg, seq(min(mpg), max(mpg), length = 5))

这会将mpg列中的连续值分成 5 个类。

于 2013-01-17T19:14:47.050 回答