2017-03-23 11 views
-3

私はデータフレームを持っています。 !r - ggplot2 scale_x_discreteに値が表示されず、値がありません。

[TEMP] [1]

First row are headers: 

LAYER, Number, Share % 
Between 100ms - 200ms , 132 , 4.66% 
Between 15ms - 30 ms , 475 , 16.8% 
Between 200ms - 300ms , 8 , 0.282% 
Between 300ms - 400ms , 1 , 0.0353% 
Between 30ms - 50 ms , 1329 , 46.9% 
Between 400ms - 500ms , 4 , 0.141% 
Between 500ms - 600ms , 2 , 0.0706% 
Between 50ms - 100ms , 863 , 30.5% 
Greater Than 600ms , 1 , 0.0353% 
Less Than 15ms , 17 , 0.6%) 

私はそれとしてのバーグラフを描画しています:

myplot <- ggplot(temp, aes(as.factor(temp$layer), temp$n, label = temp$yuzde)) + xlab("") + ylab("# of SDNNs") + 
geom_bar(stat = "identity", width = 0.6, position = "dodge") + 
theme(axis.text=element_text(size=8), axis.title = element_text(size=8,face="bold"), axis.text.x = element_text(angle = 90, hjust = 1)) + 
scale_x_discrete(limits=c("Less Than 15ms", "Betwenn 15ms - 30 ms", "Betwenn 30ms - 50 ms", "Betwenn 50ms - 100 ms","Betwenn 100ms - 200 ms", "Betwenn 200ms - 300 ms","Betwenn 300ms - 400 ms", "Betwenn 400ms - 500 ms","Betwenn 500ms - 600 ms", "Greater Than 600ms")) + 
geom_label() 

やグラフはとして来ます。

ggplot

が、私はscale_x_discreteを除外したときに、すべてが正常です! このように。

[ggplot通常] [3]

しかし、それは最初のx軸の順序であるように私はそれを持っていると思います。

だから、scale_x_discrete私のプロットを台無しにする。私は因子とレベルの編集も試みましたが、どちらもうまくいきませんでした!

誰でもこの問題の解決に役立つことができますか?

ありがとうございます。

+1

一部のデータが代わりに使用できない画像の有用であろう。 'dput(temp)'を使用して結果を質問に貼り付けてください – GGamba

+0

とにかく、入力した文字列が 'df'の値と異なるため、バーが表示されません。 – GGamba

+0

はい、それは私が解決するように頼んだ私の問題です! scale_x_discreteのものを使用するとバーが表示されません –

答えて

0

最良の方法は、dfLAYER因子の水準を並べ替えることです。

df$LAYER <- factor(df$LAYER, levels = levels(df$LAYER)[c(10,2,5,8,1,3,4,6,7,9)]) 

次に、あなたが簡単に行えます。

library(ggplot2) 

ggplot(df, aes(x = LAYER, y = Number, label = Share)) + 
    geom_col() + 
    geom_label() + 
    theme(axis.text = element_text(size=8), 
      axis.title = element_text(size=8,face="bold"), 
      axis.text.x = element_text(angle = 90, hjust = 1)) 

enter image description here

私はそれはまだのように醜いだと思います地獄ですが、それはあなたが尋ねたものです。

データ:私たちが実際に使用することができます

df <- read.table(text = 'LAYER Number Share 
       "Between 100ms - 200ms" 132 4.66% 
       "Between 15ms - 30 ms" 475 16.8% 
       "Between 200ms - 300ms" 8 0.282% 
       "Between 300ms - 400ms" 1 0.0353% 
       "Between 30ms - 50 ms" 1329 46.9% 
       "Between 400ms - 500ms" 4 0.141% 
       "Between 500ms - 600ms" 2 0.0706% 
       "Between 50ms - 100ms" 863 30.5% 
       "Greater Than 600ms" 1 0.0353% 
       "Less Than 15ms" 17 0.6% ', header = T) 
+0

ありがとうございました。私は美しさを扱います。 –

関連する問題