2012-03-08 8 views
0

私はこれよりもはるかに大きいデータフレームの以下の部分を持っているを使用して値:プロット離散GEOMタイルとscale_gradient_manual

x y  A  
    1 1 0.1176405 
    2 2 0.1176405 
    3 3 0.1219375 
    4 4 0.09942536 
    5 5 0.1031696 
    6 6 0.1384145 

そして私はggplot2を使用してプロットしようとしている:

p <- ggplot(df, aes(x,y)) + 
    geom_tile(aes(fill=A))+ 
    scale_fill_gradient(low = "black", high = "red") 

しかし、私はいつもこのエラーが出る:

Error: Non-continuous variable supplied to scale_fill_gradient. 

私はプロットにas.numeric(A)をしようとすると、それは仕事bを行いますプロットの値は奇妙に見え、私の値は示されません。

str()の出力です:

'data.frame': 289 obs. of 3 variables: 
$ x: num 1 2 3 4 5 ... 
$ y: num 1 2 3 4 5 6 7 8 9 10 ... 
$ A: Factor w/ 181 levels "0.1176405","0.1219375",..: 1 1 2 3 4 4 5 6 7 8 ... 

だから私はこのプロットを動作させるために何をすべきでしょうか?

+2

は、あなたのデータに 'STR()'からの出力を表示することができます参照してください:最初の文字に変換せずas.numericを持つ数値に

鋳造要因は、共通の落とし穴ですか? – joran

+0

@joran:質問に追加する – ifreak

+0

あなたは何を得ることができますか? –

答えて

2

データフレームのAのように見えますが、それは要因であり、数値に変換する必要があります。試してください:

df$A <- as.numeric(as.character(df$A)) 

を実行してからコードを実行してください。

as.numeric(factor(50:55)) 
[1] 1 2 3 4 5 6 

R Inferno 8.2.1

+0

ありがとう、これは私の問題を解決しました – ifreak