2017-10-19 17 views
0

seq()を使用してプロットにマイブレークを定義しようとしています。以下のダミーの例。何らかの理由でSeq()は小数で数値を生成します。

ggplot(data, aes(x=cat, y=dog) + 
    scale_y_continuous(breaks=seq(-0.3, 0.3, by=0.1)) 

seq()は私に微量ではオフになっています出力番号を与えています。この現象は、プロットデバイスの内部と外部で発生します。以下に示すように、それは負の数を生成することに問題があるようである。それを生み出すことはできますが、それが問題の出現場所です。

seq(0.3, 0.9, by=0.1) # test with positives 
seq(-0.3, 0.3, by = 0.1) # test with negatives 
format(seq(-0.3, 0.3, by = 0.1), scientific = F) # show full number 

enter image description here

私は、ドキュメントを読んで、私はそれを修正するかどうかはわかりませんので、ネガ話して何かを見つけることができませんでした。私が間違っているか除外していることはありますか?回避策または別の機能を使用する必要がありますか?

編集 重複としてマークされていますが、重複は明示的に解決策を提示していません。ここではいくつかあります:

# i went with this solution as given in comments to keep it all contained within seq() 
seq(-0.3, 0.3, length.out=7) 

# from the answers 
seq(-3, 3, by=1)/10 

# didn't work for my case but should work as a general rule 
round(x, digits=n) # x would be the seq(-0.3, 0.3, by = 0.1) and n=1 in my case) 
+1

を試みることができる回避策について。 から?seq: '反対側の符号の始点と終点を指定するとエラーです。' 回避策としては、 seq(from = -0.3、to = 0.3、length.out = 7) – jpshanno

+0

@jpshanno 0.3 - (-0.3)= 0.6これは0.1と同じ記号です。いいえ、これは通常の浮動小数点FAQです。 – Roland

+1

@Roland、私はあなたがこの質問に答えるためにリンクした質問はないと思います。この質問は、fromとtoが反対の記号である場合にseq()に期待される出力を与える方法を尋ねています。 – jpshanno

答えて

1

質問が、私は答えとしてこれを提出することはできません重複としてマークされていたので、あなたは、配列(-3,3,1)/ 10

+0

あなたのソリューションは機能します。私は@ jpshannoと一緒に行くことにしました。なぜなら、それはseqの中にそれを保持していますが、すでに重複してマークされていたので、私は彼にチェックを与えることができなかったので、あなたのものです。 – seeellayewhy

関連する問題