2017-09-04 4 views
0

私は棒グラフをggplotにプロットしようとしていますが、グリッドのみを連続的に取得しています。これは明らかにdraw nothinghereのデモンストレーションですが、最も簡単な方法で値を表示する方法を理解したいと思います。私はプロットを得ることができますなぜこのggplotはグリッドを値なしでプロットするのですか?

enter image description here

library(ggplot2) 
    testData<-data.frame(x=c("a","b","c","d","e","f"), y=c(10,6,9,28,10,17)) 
    bar <- ggplot(data=testData, aes(x=c("a","b","c","d","e","f"), y=c(10,6,9,28,10,17), fill = "#FFCC00")) 

一つの方法は、値が第1のバーチャート上にプロットされていないのはなぜgeom_bar

enter image description here

bar <- ggplot(data=testData, aes(x=c("a","b","c","d","e","f"), y=c(10,6,9,28,10,17), fill = "#FFCC00")) + geom_bar(stat="identity") 

とどのように修正することですそれは最も簡単な方法ですか? +でプロットするこの方法の背後にあるアイデアとは何ですか?

答えて

5

パッケージggplot2パッケージでは、ggplot()を呼び出すことは基本グリッドを呼び出すことのみを目的としています。それはグラフを描く前にグラフ紙を取り出すようなものです。どちらの場合でも、グリッドを準備することは、グラフをプロットすることとは関係ありません。それは、(プロットのような機能を使用するのと同じではありません

ggplot(data=testData, aes(x=x, y=y, fill = "#FFCC00")) 

)またはHIST()、グリッドの準備をどのとでデータをプロットします。それは、次のコマンドを実行すると、あなたの最初の例では、空のグリッドになります理由です同時に:

plot(x=x,y=y,data=testData) 

hist(x=x,data=testData) 

「+」ggplotでは、我々は最初の空白グリッドの上に含めるggplotに関連する複数の引数があることを言うことだけの方法です。そのため、 "+"で区切られた各行は通常レイヤーと呼ばれます。

我々は、単純な散布図を作りたいのであれば、我々はグリッドの上にポイントを追加:

testData<-data.frame(x=c(1:6), y=c(10,6,9,28,10,17)) 

ggplot(data=testData,aes(x=x,y=y)) + 
    geom_point() 

出力:

enter image description here

我々はそれに行を追加したい場合scatterplotでは、1行のコードを追加するだけでよい:

ggplot(data=testData,aes(x=x,y=y)) + 
    geom_point() + 
    geom_line() 

出力:私たちが望む場合

enter image description here

私たちは、このような層を追加し続けることができます。ただ、(つまり、最初の数行は、それらの後印刷された線の下になります)、彼らはあなたがそれらを入力した順に印刷されますのでご注意:

ggplot(data=testData,aes(x=x,y=y)) + 
    geom_bar(stat="identity",fill="#00BFC4") + 
    geom_point() + 
    geom_line() 

出力:

enter image description here

また

、ノートggplot呼び出しの中であなたのデータを何度も呼び出さないことが推奨されています。エラーにつながる可能性があります。

は使用しないでください。代わりに

ggplot(data=testData, aes(x=c("a","b","c","d","e","f"), 
         y=c(10,6,9,28,10,17), fill = "#FFCC00")) + 
    geom_bar(stat="identity") 

#or 

ggplot(data=testData, aes(x=testData$x, y=testData$x, fill = "#FFCC00")) + 
    geom_bar(stat="identity") 

を使用します。

ggplot(data=testData, aes(x=x, y=y, fill="#FFCC00")) + 
    geom_bar(stat="identity") 

あなたが最初ggplot()ライン内で呼び出されていないデータフレーム(S)からのデータをプロットしたい場合は、次のように、異なるデータフレームを使用する "レイヤー"にデータ引数を追加するだけです:

ggplot(data=testData,aes(x=x,y=y)) + 
    geom_bar(stat="identity",fill="#00BFC4") + 
    geom_point(data=differentDf, aes(x=x,y=y)) + 
    geom_line(data=differentDf, aes(x=x,y=y)) 
+0

2つの差分部分は、レイヤーを介して重ね合わせてプロットされる2つの異なるデータセットを定義します。 – hhh

+0

間違いなく。それはggplotが最も優れていることの1つです。これに対処するために私が作成した上記の編集を参照してください。 – www

関連する問題