web-dev-qa-db-ja.com

data.frameからバープロットを作成

Rでは、画像の上にあるようなdata.frameがあります。

以下のようなバープロットを作成する可能性はありますか?

data.frame:

      X1   X2   X3  
 --- ---- ---- ---- 
  A    2   3    4   
  B    4   2    1   
  C    1   NA   NA  

バープロット:

----------------------------
|                          |
|       #    #             |
|    #  #    #             |
| #  #  #    #  #          |
| #  #  #    #  #  #    #  |
----------------------------
  X1 X2 X3   X1 X2 X3   x1
     A           B       C
15
ElPatzo

基本グラフィックを使用すると、これを簡単に行うことができます。

mydf <- data.frame( X1=c(A=2, B=4, C=1), X2=c(3,2,NA), X3=c(4,1,NA) )
barplot(t(as.matrix(mydf)), beside=TRUE)

axisへの追加の呼び出しを使用すると、質問のようにラベルを付けることができます。

23
Greg Snow

ASCII出力を必要としない場合、ggplot2を使用した解決策を次に示します。

# load / generate your data
mydf <- data.frame( X1 = c(2,4,1), X2 = c(3,2,NA), x3 = c(4,1,NA), row.names=c("A","B","C") )
mydf$Category  <- row.names(mydf)

# bring your data to long format as needed by ggplot
library(reshape2)
mydf.molten <- melt(mydf, value.name="Count", variable.name="Variable", na.rm=TRUE)

# plot and facet by categories
library(ggplot2)
qplot( data=mydf.molten, x = Variable, y = Count, geom="bar", stat = "identity" ) + facet_wrap( "Category" )

enter image description here

詳細については、 ggplot2マニュアル 、特に geom_bar および facet_wrap に関する章を参照することをお勧めします。 。

17
Beasterfield