簡體   English   中英

ggplot2軸標簽點未按指定顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM