我希望,使用此数据集:https://dl.dropboxusercontent.com/u/73950/mydata.csv,可以显示4种不同的图形:不同色调的GA,N1,N2,PE。对于每个图形,所有类别“m”的值必须显示在y轴上,x轴上带有“nbr”。
这是我到目前为止的代码(感谢@CMichael的大部分代码)
require(reshape2)
mydata = read.csv(file="/Users/Rodolphe/Downloads/mydata.csv", sep=";", header=TRUE)
dataM = melt(mydata,c("nbr"))
#parse labels to identify vertical category and fill the value correspondingly
dataM$order = ifelse(grepl("GED",dataM$variable),"GED",ifelse(grepl("RAN",dataM$variable),"RAN",ifelse(grepl("EIG",dataM$variable),"EIG","BET")))
#parse labels to identify horizontal category and fill the value correspondingly
dataM$net = ifelse(grepl("PE",dataM$variable),"PE",ifelse(grepl("GA",dataM$variable),"GA",ifelse(grepl("N1",dataM$variable),"N1","N2")))
#parse label to identify category
dataM$category = ifelse(grepl("mNC",dataM$variable),"mNC",ifelse(grepl("aSPL",dataM$variable),"aSPL",ifelse(grepl("d",dataM$variable),"d","m")))
ggplot(dataM[dataM$category=="m" & dataM$order=="RAN",], aes(value, fill=net)) + geom_density(alpha = .3, color=NA) + scale_fill_brewer(palette="Set1")
这给了我:
这就是美学,正是我所需要的。然而,显示器显然是错误的,有些事情使我感到困惑。首先,我似乎无法在x轴上强制“nbr”。我是否在使用此代码的正确轨道上?
答案 0 :(得分:1)
因此,基于OP的评论,这可能是绘制数据的一种方式:
ggplot(dataM[dataM$category=="m" & dataM$order=="RAN",], aes(x=nbr, y=value, fill=net)) +
geom_ribbon(aes(ymin=0, ymax=value),alpha=0.3)+
scale_fill_brewer(palette="Set1")
或者,恕我直言是一个更好的选择:
ggplot(dataM[dataM$category=="m" & dataM$order=="RAN",], aes(x=nbr, y=value, fill=net)) +
geom_line(aes(color=net))+
geom_ribbon(aes(ymin=0, ymax=value),alpha=0.3)+
scale_fill_brewer(palette="Set1")+
facet_grid(net~.)
答案 1 :(得分:0)
根据OP的评论,这可能是绘制数据的一种方法:
print(df)
State City
0 ['AK'] ['Yakutat']
1 ['AK'] ['Apache']