2016-10-24 37 views
0

geom_freqpolyを使ってプロットされた線にシェイプを追加しようとしています。色を変えてggplot2の線にシェイプを追加するgeom_freqpoly

data <- data.frame(time=runif(1000,0,20000), 
        class=c("a","b","c","d")) 

ggplot(data, aes(time, colour = class)) + geom_freqpoly(binwidth = 1000) + geom_point(aes(shape=class)) 

が、これはこのエラーを生成します。 'エラーを:geom_pointは以下の行方不明の美学を必要とします。Y'

どのように私はこのエラーを解決することができますか?

もう1つは、線を描くために単一の色(例えば青色)を使用したいのですが、scale_colour_brewer()で私は色の縮尺を変更できません。最も明るい色がほぼ白であり、かろうじて見ることができます。

カラーのカスタム最小値と最大値を追加するにはどうすればよいですか?これについて

enter image description here

+0

私はポイントが 'geom_freqpoly'のオプションではないと思います。ポイントが本当に必要な場合は、自分で周波数をプログラムし、ポイントを通してプロットする必要があります。 2番目の質問については、 'scale_colour_gradient'を見てください。 –

+0

@RomanLuštrik、確かに私が知っているが、私は線に形を追加したい、どうすれば自動的に計算されたy変数を取得できますか? – mario

+0

あなただけの私は、このエラーを与える「scale_colour_gradient」を使って '線種= class' –

答えて

1

どのように?あなたが得ているエラーはgeom_pointによって生成されており、それにはxyが必要なので削除しました。

ggplot(data, aes(x = time, color = class)) + 
    geom_freqpoly(binwidth = 1000) + 
    scale_color_brewer(palette = "Blues") + 
    theme_dark() 

enter image description here

あなたは暗い背景にしたくない場合は、RColorBrewerから手動で値を渡します。次の例では、コントラストを上げるために1秒おきに色を使用しています。あなたはlayer_data機能を使用してggplotオブジェクトから集計データを抽出することができ

p1 <- ggplot(data, aes(x = time, color = class)) + 
    geom_freqpoly(binwidth = 1000) + 
    scale_color_manual(values = RColorBrewer::brewer.pal(9, name = "Blues")[c(3, 5, 7, 9)]) 

EDIT

xy <- layer_data(p1) 

ggplot(xy, aes(x = x, y = count, color = colour)) + 
    theme_bw() + 
    geom_line() + 
    geom_point() + 
    scale_color_manual(values = RColorBrewer::brewer.pal(9, name = "Blues")[c(3, 5, 7, 9)]) 
+0

色のおかげで、問題はgeom_pointです、私は[例えば] http://i.stack .imgur.com/mLckD.png) – mario

+0

@mario編集を参照してください。それはいくつかの研磨が必要ですが、仕事を完了する必要があります。 –

関連する問題