は次のとおりである:「別のgeom
要素と凡例を追加する方法は?」ここ
2のアプローチ:
- 基本:1つのデータセット、AESからの伝説()
- 高度:customized legend keys(リンクの答えから、ほぼ直接コピー)。
まず、単一のデータセットをggplotに送信し、グループ化変数を独自の列として追加することをお勧めします。これらのグループ(色、塗りつぶし、サイズ、形、アルファ)に基づいて、必要なプロパティを設定します。 ggplotはこれらのグループ化変数に基づいて凡例を作成します。 (注意:すでにgeoms
異なる作るためにあなたのデータをサブセット化しているため、単一のdata.frameは、この特定の場合には必要ありません)
#Example data
conc <- c(0.004, 0.003, 0.003, 0.003, 0.004, 0.003, 0.004, 0.008, 0.020)
time <- c(seq(from=1,to=length(conc)))
data1 <- data.frame(time,conc)
conc <- c(0.007, 0.012, 0.002, 0.003, 0.003, 0.004, 0.007, 0.003, 0.004,
0.005, 0.004, 0.016)
time <- c(seq(from=1,to=length(conc)))
data2 <- data.frame(time,conc)
#Create grouping variables
data1$category <- "myPoint"
data2$category <- "myStep"
data3 <- rbind(data1, data2)
基本的な考え方:
#Graph the combined data, setting the overall aes()
#but subset the data for the different visual elements (points and steps)
ggplot(data3, aes(time, conc, colour=category))+ coord_cartesian(ylim = c(0,0.075))+
geom_point(data=data3[data3$category == "myPoint",], shape=10,size=2)+
geom_step(data=data3[data3$category == "myStep", ], size=1)+
xlab("Sampling Time (sec)")+
ylab("Concentration (#/cm^3)") +
ggtitle("Basic")
高度なアプローチ:
#Specify a custom colour in each variable's aesthetics
#Hack the legend: color = guide_legend(override.aes = list(...))
ggplot()+ coord_cartesian(ylim = c(0,0.075))+
geom_point(data=data1,aes(time,conc, color='point'),shape=10,size=2)+
geom_step(data=data2,aes(time,conc, color='step'),size=1)+
xlab("Sampling Time (sec)")+
ylab("Concentration (#/cm^3)") +
ggtitle("Advanced") +
scale_colour_manual(name = "legend",
values = c("point" = "black", "step" = "black")) +
guides(color=guide_legend(override.aes=list(
shape=c(10, NA),
linetype=c(0,1)
)))
投稿を編集してデータを追加して、例が再現できるようにしてください。 'dput(spAm)'などが役に立つかもしれません。 – lukeA
http://stackoverflow.com/questions/16311335/different-legend-keys-inside-same-legend-in-ggplot2/16529687#16529687 (また、不等長さは問題ではありません。 'rbind'を介してデータセット)。 – oshun
各データセットの変数をaethesticsに入力しようとすると、「美学の長さはデータ1(x)と同じでなければなりません」というエラーが表示されます:x、y "データセットを組み合わせると、私はggplotに使用する必要がありますか?私はggplot2を初めて使用しているので、これは素朴な疑問のように思えるかもしれません。あなたがあなたのためにrbindを使うことをお勧めしました。その後、データセットの選択されたサブセットを読み込みます。 –