我有以下代码来制作我的数据图表:
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轴,'value'是y轴。 我想做的是改变点的颜色。而不是变量名,我希望它们是'Var'值。所以我希望Var值在1-10之间的所有点都是一种颜色,11-20是另一种颜色,依此类推21-30,31-35和36-41。我还希望在这些点后面有一个带状/区域阴影,从每个Var值的最高值延伸到最低值,但是这个色带也必须具有与点相同的颜色,只是透明度较低水平。
对于奖金问题,我也无法从我的示例中获取'mean'变量,以显示为geom_line而不是geom_point。我一直在玩这个:
p+geom_point()+geom_line(data=pdata[which(pdata$variable=="Mean")])
但我无法让它发挥作用。如果有人可以帮助解决这些问题,那就太棒了。感谢。
答案 0 :(得分:1)
将cut
与选项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)
答案 1 :(得分:0)
关于第一个问题,您可以使用cut
功能将连续数据分类。例如:
with(mtcars, cut(mpg, seq(min(mpg), max(mpg), length = 5))
这会将mpg
列中的连续值分为5个类。