2017-11-17 12 views
0

とI持って、次のデータフレーム:ラウンド目盛り動的ggplot2

p_rEx<- ggplot (data=rExp, aes(x=samples, y=value)) + scale_x_discrete(limits=samples) 
p_rEx<- p_rEx + geom_bar (aes(fill = variable),stat = "identity", position = "dodge", colour='black') 
p_rEx<- p_rEx + labs(y="relative expression", x='') 
p_rEx<- p_rEx + guides(fill=guide_legend(title=NULL)) 
p_rEx<- p_rEx + scale_fill_manual(values=gray.colors(3, start = 0.3, end = 0.9, gamma = 2.2, alpha = NULL)) 
p_rEx 

結果は以下のプロットである:私は次のコードを使用してグループ化されたバープロットを作成

rExp <- read.table(text='  samples variable value 
UT   F201/203 0.00255836649706595 
siCTL   F201/203 0.00911222024608249 
siF201/203 F201/203 0.00473993831657716 
UT   F203  0.0108815320248598 
siCTL   F203  0.0224404694390467 
siF201/203 F203  0.0115692755110973 
UT   F203/206 0.00392331892967821 
siCTL   F203/206 0.010474094476624 
siF201/203 F203/206 0.00494613385979193', header=TRUE) 

enter image description here

私の問題点は、目盛りはv奇妙な数字。 私はそれらをもっと「丸く」したいと思います。 0.01の代わりに0.01 0.030474094476624

yの値は10と1 * 10^-10の間の任意の値になるため、y軸は連続していなければなりません。

は私が+ scale_y_continuous(breaks= pretty_breaks())のようなものを試してみましたが、私はエラー(Error: Discrete value supplied to continuous scale

この問題を解決する方法はありますを与えましたか? ありがとうございました!

編集: 私は、これは、この質問の重複しているとは思わない: How do I change the number of decimal places on axis labels in ggplot2?

ここで、私はすべてのyの値のために働くの動的バージョン、お願いします。小数点の動的調整

+0

解決策は、重複としてマークされた提供され、適用されません。 –

+2

上記のサンプルデータと同じプロットはありません。これが正しいと確信していますか?値列が数値ではなく要素になる場合は、クラスのように見えます。 [再現可能な例](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)が実際に再現可能であることを確認してください。 – MrFlick

+0

ありがとう@MrFlick。好奇心に溢れたものに気付きました。データを入力してここに投稿すると、9桁目に丸められたようです。これは元のデータでは起こりませんでした(rExp DFを印刷したときに表示される数字よりも多くの数字が表示されているのがわかります)。元のデータの値は、しかし、私はデータを少し丸める.... –

答えて

1

あなたの値は数値ではなく因子変数であるとみなされているようです。そのため、問題は実際にはggplotではなくデータのインポートにあります。しかし、おそらくそれを修正することができます

ggplot(data=rExp, aes(x=samples, y=as.numeric(as.character(value)))) 
+0

ありがとうあなたのコメントを投稿して問題を解決した後、私はすでにこれを実装しました。 乾杯! –

関連する問題