1

以下で構成される 3 つのデータ系列があります。

  • X (フロート)
  • Y (浮動小数点数)
  • S (フロート)
  • クラス (離散値)

3 つのデータ シリーズはすべて同じ X 座標を共有していますが、他のすべてのコンポーネントは他のデータ シリーズとは異なります。3 つのデータ シリーズ (R のライブラリ ggpplot2) のそれぞれに 1 つの geom_point() を使用することで、次のように特定のカラー スケールで各データ シリーズをプロットしたいと思いSます。

ggplot(data, aes(x=X)) + geom_point(aes(y=Y, colour=S, shape=Class)) 

これは、1 つのデータ系列のみを使用している場合に機能します。問題はgeom_points()、独自の および を使用して指定されたように 3 つを定義するYS、それらはすべて同じカラー スケールを持ち、プロット上で少し混乱することです。

私はすでに形状を使用して es を区別Classしているので、データ系列ごとに独自の色グラデーションを持つ特定の色を使用することを本当に楽しんでいます。

たとえば、次のように言います。

  • データ系列 1 の濃い青から薄い青まで
  • データ系列 2 の濃い赤から薄い赤まで
  • データ系列 3 の濃い黄色から薄い黄色まで

私は周りを見回しましたが、私のニーズを満たすものは何も見つかりませんでした. ggplot2 を使用すると、プロットごとに複数のカラー スケールを使用することはできないというコメントがいくつかあります...それは本当ですか?

誰かが ggplot2 の有無にかかわらず、この種のプロットをすでに理解していれば、彼または彼女の解決策に大いに感謝します。

4

1 に答える 1

1

Inあなたは本当にあなたが求めているものにggplotしか使えません。alpha私はいくつかのデータを作成しました:

df1 <- data.frame(X=rnorm(16), Y=rnorm(16), S=rep(1:4,times=4), Class=rep(LETTERS[1:4], each=4))
df2 <- data.frame(X=rnorm(16), Y=rnorm(16), S=rep(1:4,times=4), Class=rep(LETTERS[1:4], each=4))
df3 <- data.frame(X=rnorm(16), Y=rnorm(16), S=rep(1:4,times=4), Class=rep(LETTERS[1:4], each=4))

ggplot(df1, aes(x)) + geom_point(aes(y=Y, colour=S, shape=Class))
df1$id <- 1
df2$id <- 2
df3$id <- 3
df.list <- list(df1, df2, df3)
df.all <- ldply(df.list, rbind)

ggplot(df.all, aes(X, Y)) + geom_point(aes(colour=as.factor(id), shape=Class, alpha=S))

それがあなたの要件を満たしているかどうかわからない...

于 2013-03-05T01:24:13.997 に答える