[英]ggplot2 axis label points not displaying as specified
繪制此數據時,x和y標簽的默認標簽點具有多個小數位,例如0.02999999999999999989,而不是諸如0.03的敏感點。
我嘗試過使用scale_y_continuous()函數來指定限制和中斷。
ggplot(data, aes(x, y, col = z)) +
geom_point(size = 2) +
scale_y_continuous(limits = c(-0.03, 0.03), breaks = seq(-0.03, 0.03, 0.01))
我可以通過breaks = seq()
來更改標簽點的位置。 在上述代碼的情況下,我希望y軸從-0.03變為0.03,且標簽點為每0.01。 但是,它們仍未完全按照指定的方式繪制,並且顯示的值與默認圖中一樣,顯示出無數小數位。 例如我期望標簽為0.01但得到0.0100000000000000019
編輯:運行M. Viking的代碼繪制虹膜數據集時,將復制該錯誤。
沒有您的數據,我假設您已經在系統中的某個位置設置了options()
,類似於: options(digits = 19)
盡管您可能沒有明確地這樣做。 要解決此問題,您可以更改默認的options()
或僅在此ggplot
之前指定options()
:
重現此問題:
options(digits = 19)
library(tidyverse)
x <- seq(from = -.03, to = 0.03, 0.001)
y <- (1.01*x)
z <- y>0
data <- data.frame(y, x,z)
ggplot(data, aes(x, y, col = z)) +
geom_point(size = 2) +
scale_y_continuous(
limits = c(-0.03, 0.03), breaks = seq(-0.03, 0.03, 0.01))
解決以上問題:
options(digits = 5)
ggplot(data, aes(x, y, col = z)) +
geom_point(size = 2) +
scale_y_continuous(
limits = c(-0.03, 0.03), breaks = seq(-0.03, 0.03, 0.01))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.