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
私は、ドキュメントを読んで、私はそれを修正するかどうかはわかりませんので、ネガ話して何かを見つけることができませんでした。私が間違っているか除外していることはありますか?回避策または別の機能を使用する必要がありますか?
編集 重複としてマークされていますが、重複は明示的に解決策を提示していません。ここではいくつかあります:
# 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)
を試みることができる回避策について。 から?seq: '反対側の符号の始点と終点を指定するとエラーです。' 回避策としては、 seq(from = -0.3、to = 0.3、length.out = 7) – jpshanno
@jpshanno 0.3 - (-0.3)= 0.6これは0.1と同じ記号です。いいえ、これは通常の浮動小数点FAQです。 – Roland
@Roland、私はあなたがこの質問に答えるためにリンクした質問はないと思います。この質問は、fromとtoが反対の記号である場合にseq()に期待される出力を与える方法を尋ねています。 – jpshanno