2010-11-28 3 views
1

私はggplotを使ってさまざまなデータフレームからデータをプロットしたいと思います。しかし、離散的かつ連続的なスケールに問題があります。同じ種類のスケールで因子と変数を使用する - 可能ですか?

は、我々は、このデータを使用したいとしましょう:

x <- rnorm(9,5) 
y <- rnorm(9,5) 
f1 <- rep(c("a","b","c"),3) 
df1 <- data.frame(x,y,f1) 
x <- rnorm(9,5) 
y <- rnorm(9,5) 
f2 <- rep(c("d","e","f"),3) 
df2 <- data.frame(x,y,f2) 

私は1つのプロット上の両方のデータフレームを表示したいと思います。 DF1の$ f1とDF1 $ f2は両方のポイントの色の責任を負わなければならない:

p <- ggplot(df1,aes(x,y)) 
p <- p + geom_point(aes(colour=f1)) 
p <- p + geom_point(data=df2,aes(x,y,colour=f2)) 
p 

これは動作します。しかし

、私はこのデータを持っている:

x <- rnorm(9,5) 
y <- rnorm(9,5) 
f1 <- rep(c("a","b","c"),3) 
df1 <- data.frame(x,y,f1) 
x <- rnorm(9,5) 
y <- rnorm(9,5) 
quan <- rnorm(9,1) 
df2 <- data.frame(x,y,quan) 

このプロットは動作しません:因子として

p <- ggplot(df1,aes(x,y)) 
p <- p + geom_point(aes(colour=f1)) 
p <- p + geom_point(data=df2,aes(x,y,colour=quan)) 
p 

Error: Continuous variable() supplied to discrete scale_hue. 

f1を、quanが数値であり、それが彼らことを論理的と思われます同じ縮尺で使用することはできません。しかし、どのようにデータフレームごとに個別のスケールを定義できますか?またはこれはおそらく不可能でしょうか?

私はscale_colour_discretescale_colour_continuousを使ってみましたが、1つのプロットに2つのスケールのうちの1つしか使用できないようです。

+0

サンプルコードにいくつかの誤りがあります。 fとquanは存在しません。これらはそれぞれf1とf2ですか? – kmm

+0

それを指摘してくれてありがとう。質問のコードを修正しました... – donodarazao

+0

"quan"とは何ですか?上記のコードにはまだエラーがあります。コピーして貼り付けてみてください。 –

答えて

2

プロットごとに1種類の縮尺しか指定できません。最初の例では、両方のケースのスケールが要因であるため、エラーは発生しません。

第2の例では、1つは連続変数(f)であり、もう1つは因子(quan)である。 'quan'を渡そうとすると、ggplotは要素ではなく連続変数を受け取り、エラーメッセージを表示します。

まず、rbind()を使用してプロットして簡略化してください。しかし、あなたのデータが同じ方法でフォーマットされていることを確認してください。 rbindが失敗した場合は、同様に構造化されたデータフレームを渡すことがないためです。

df3 <- rbind(df1,df2) 
p <- ggplot(df3, aes(x,y,colour=f) + geom_point() 
+0

プロットごとにCOLORとSIZEのそれぞれに1つのスケールしか持てないということを述べておきます。 –

+0

あなたのお返事ありがとうございました。ご返信ありがとうございます。私はいくつかの高度なマッピングのためにggplotを使用しようとしていましたが、1つのスケール/プロットの制限はその方向に非常に深く入ることを許しません。しかし、とにかく、そこには特別なGISソフトウェアがあるのは間違いないと思います...;) – donodarazao

関連する問題