2016-11-14 6 views
0

通常、カテゴリ変数には棒グラフを使用することをお勧めしますが、私のケースでは誰かが連続変数をグループに分割してしまいます。カテゴリ変数からヒストグラム(棒グラフではない)を作成する

これは私が(ヒストグラムなどを除く)を取得したいものです。

par(oma=c(2,0,0,0)) #so labels are not cut off 
barplot(table(hhincome),ylab = "Frequency", main = "Netto houshold income", 
      border="black", col="grey",las=2) 

enter image description here

(注:ヒストグラムはバーとx軸との間にスペースがない)

データ:

hhincome <- structure(c(4L, 4L, 1L, 6L, 8L, 1L, 4L, 5L, 2L, 3L, 1L, 5L, 1L, 7L, 6L, 7L, 3L, 2L, 6L, 7L, 8L, 4L, 7L, 8L, 7L, 4L, 5L, 5L, 5L, 9L, 7L, 5L, 8L, 8L, 6L, 5L, 5L, 3L, 5L, 4L, 3L, 5L, 3L, 5L, 4L, 4L, 5L, 7L, 6L, 7L, 2L, 6L, 1L, 7L, 4L, 4L, 5L, 2L, 4L, 6L, 6L, 8L, 6L, 7L, 4L, 7L, 9L, 1L, 4L, 6L, 2L, 6L, 8L, 6L, 5L, 8L, 7L, 9L, 7L, 9L, 8L, 5L, 5L, 7L, 6L, 2L, 7L, 6L, 6L, 1L, 7L, 7L, 2L, 6L, 6L, 6L, 7L, 5L, 2L, 2L, 9L, 6L, 7L, 7L, 5L, 6L, 6L, 5L, 5L, 7L, 8L, 6L, 6L, 3L, 7L, 6L, 4L, 5L, 5L, 4L, 8L, 3L, 4L, 6L, 5L, 7L, 3L, 4L, 7L, 5L, 3L, 6L, 2L, 2L, 5L, 2L, 4L, 8L, 4L, 3L, 2L, 7L, 2L, 5L, 2L, 1L, 8L, 7L, 3L, 6L, 6L, 7L, 2L, 9L, 3L, 3L, 5L, 7L, 7L, 5L, 6L, 8L, 5L, 6L, 5L, 5L, 7L, 6L, 5L, 5L, 6L, 10L, 3L, 6L, 6L, 3L, 2L, 4L, 9L, 2L, 6L, 7L, 1L, 5L, 6L, 5L, 4L, 7L, 5L, 2L, 6L, 3L, 3L, 2L, 7L, 6L, 6L, 5L, 7L, 6L, 1L, 7L, 3L, 2L, 5L, 5L, 3L, 3L, 3L, 4L, 1L, 7L, 5L, 3L, 3L, 3L, 8L, 6L, 3L, 2L, 5L, 5L, 4L, 1L, 4L, 1L, 2L, 6L, 4L, 5L, 5L, 8L, 3L, 7L, 7L, 3L, 4L, 4L, 4L, 3L, 4L, 6L, 3L, 3L, 4L, 7L, 2L, 6L, 8L, 5L, 3L, 3L, 6L, 2L, 3L, 4L, 3L, 5L, 5L, 7L, 8L, 6L, 6L, 8L, 4L, 7L, 9L, 1L, 5L, 3L, 2L, 3L, 6L, 3L, 4L, 6L, 3L, 7L, 3L, 1L, 6L, 8L, 4L, 4L, 5L, 6L, 8L, 4L, 4L, 2L, 8L, 6L, 5L, 1L, 4L, 6L, 3L, 5L, 6L, 6L, 4L, 4L, 7L, 8L, 3L, 3L, 4L, 6L, 1L, 6L, 7L, 7L, 1L, 3L, 5L, 6L, 7L, 2L, 3L, 6L, 3L, 2L, 7L, 9L, 3L, 10L, 6L, 9L, 3L, 5L, 11L, 10L, 7L, 8L, 8L, 5L, 5L, 3L, 5L, 8L, 9L, 3L, 2L, 6L, 7L, 5L, 5L, 7L, 5L, 8L, 7L, 11L, 7L, 3L, 3L, 5L, 6L, 8L, 2L, 5L, 6L, 6L, 9L, 4L, 5L, 6L, 7L, 6L, 3L, 8L, 7L, 6L, 9L, 7L, 7L, 4L, 7L, 9L, 3L, 9L, 6L, 11L, 6L, 9L, 4L, 7L, 2L, 7L, 8L, 6L, 8L, 6L, 6L, 6L, 5L, 5L, 2L, 4L, 9L, 7L, 6L, 9L, 5L, 3L, 8L, 2L, 5L, 4L, 7L, 4L, 8L, 6L, 1L, 6L, 5L, 9L, 6L, 7L, 1L, 1L, 4L, 3L, 11L, 3L, 6L, 5L, 2L, 7L, 5L, 6L, 8L, 8L, 3L, 4L, 9L, 6L, 5L, 7L, 8L, 8L, 6L, 8L, 1L, 3L, 5L, 8L, 1L, 6L, 7L, 9L, 8L, 4L, 4L, 6L, 5L, 7L, 6L, 7L, 7L, 3L, 9L, 5L, 8L, 11L, 3L, 7L, 6L, 7L, 8L, 8L, 2L, 2L, 3L, 2L, 5L, 6L, 5L, 7L, 4L, 7L, 2L, 7L, 2L, 2L, 4L, 7L, 6L, 9L, 8L, 5L, 1L, 6L, 3L, 10L, 1L, 7L, 4L, 7L, 5L, 6L, 8L, 4L, 8L, 4L, 5L, 8L, 6L, 7L, 7L, 8L, 7L, 7L, 6L, 7L, 5L, 7L, 9L, 5L, 7L, 4L, 2L, 7L, 3L, 6L, 3L, 8L, 5L, 2L, 6L, 7L, 7L), .Label = c("Less than 500 €", "500-900 €", "900-1300 €", "1300-1500 €", "1500-2000 €", "2000-2600 €", "2600-3500 €", "3500-4500 €", "4500-6000 €", "6000-8000 €", "8000€ or more"), class = "factor") 
+5

'space = 0'引数を使用しませんでしたか? –

+0

それは本当に良いアイデアです!私はこのオプションを探すのではないと思っていたヒストリーの作業に集中しました。また、 'axis(1、labels = FALSE)'は軸を追加します:)ありがとう! – JonGrub

答えて

2

私はすでに私の答えを持っています。代わりにヒストグラムを強制的に、私は単にexcatlyヒストグラムのように見えるbarplotを作成することができます。

par(oma=c(2,0,0,0)) #so labels are not cut off 
barplot(table(hhincome2), space = 0, # set space between bars to zero 
       ylab = "Frequency", main = "Netto houshold income", 
       border="black", col="grey",las=2) 
axis(1, at = hhincome,labels = FALSE) # at x-axis at category borders 
box() 

enter image description here

編集:

h <- hist(as.numeric(hhincome2) #as.numeric converst factor levels to numeric values 
      , xlab = "", ylab = "Frequency", main = "Netto houshold income \n(with normal disttribution curve)", 
      border="black", col="grey",las=2, 
      xaxt='n') #this supresses the x-axis which would disply levels instead values 
axis(1, at = hhincome2, labels = hhincome2, las=2) #just add factor level labels as labels 
box() 

それはだこの道:私はちょうど別の方法を見つけました通常の散布曲線を追加することも可能です:

xfit<-seq(min(as.numeric(hhincome2)),max(as.numeric(hhincome2)),length=1100) 
yfit<-dnorm(xfit,mean=mean(as.numeric(hhincome2)),sd=sd(as.numeric(hhincome2))) 
yfit <- yfit*diff(h$mids[1:2])*length(as.numeric(hhincome2)) 
lines(xfit, yfit, col="black", lwd=2) 

enter image description here

関連する問題