に 色と形の両方でggplot凡例を作成する 形と色を組み合わせる方法がありますが、1つの変数に基づいています。変数が2つの変数に分割されている場合、これが可能かどうか疑問です。
Hierはテストデータです:
(x <- data.frame(time =rep(1:5,4)
, sex = rep(c("m","f"), each=5)
, val_type = rep(c("obs","fit"),each=10)
, val = rep(1:4,each=5)*rep(1:5,4)
)
)
私が凡例をどのようにしたいのかを示すために、私は2つの変数を組み合わせます:
x$sv <- paste(x$sex,x$val_type,sep="-")
ここに1つの変数を持つggplotがあります:
ggplot(data=x, aes(x=time, y=val, linetype=sv, col=sv)) +
geom_line() +
scale_colour_manual(name = ""
, values=c("red","red","blue","blue")
, labels=c("Female fitted","Female observed"
,"Male fitted","Male observed")
) +
scale_linetype_manual(name = ""
, values=c(1,2,1,2)
, labels=c("Female fitted","Female observed"
,"Male fitted","Male observed")
)
ここにプロットがあります:
私は同じ凡例を持っていますが、2つの変数を別々に使用したいと思います
ggplot(data=x, aes(x=time, y=val, linetype=val_type, col=sex)) +
geom_line()
出来ますか? 私が結合された変数を使用したくない理由は、分析に必要のない変数を作成したくないからです。別の理由は、凡例を手動でどのようにカスタマイズできるかを確認することです。 手伝ってくれてありがとう。
回答:
回答№1は2新しい変数を大きな問題として作成することはありません(特にパイプを使用する場合)。しかし、はい、可能です interaction
手動スケール定義を使用してください。
ggplot(data = x,
aes(x = time,
y = val,
linetype = interaction(val_type, sex),
col = interaction(val_type, sex))) +
geom_line() +
scale_colour_manual(name = ""
, values=c("red","red","blue","blue")
, labels=c("Female fitted","Female observed"
,"Male fitted","Male observed")
) +
scale_linetype_manual(name = ""
, values=c(1,2,1,2)
, labels=c("Female fitted","Female observed"
,"Male fitted","Male observed")
)