如何从 R 中的 scales 包制作的图中的标签中删除小数?
How to delete decimals from labels in plots made with the scales package in R?
我绘制了一个图,其中填充条为对数刻度。默认情况下,标签以 1e+01
、1e+02
等格式出现。我选择使用 scales
包修改标签,使用 label_number()
函数。但是,值 0.1
、10
、1000
和 100000
出现时带有额外的小数位。有什么方法可以显示这些数字而无需额外的小数位?
我想要这样的序列:0.001
、0.1
、10
、1000
和 100000
。
library(ggplot2)
library(scales)
X <- 0
Y <- 0
Z <- 10
DF <- data.frame(X, Y, Z)
ggplot(data = DF,
aes(x = X,
y = Y,
fill = Z)) +
geom_tile() +
scale_fill_distiller(palette = "YlGnBu",
trans = 'log10',
limits = c(0.001, 100000),
labels = label_number(big.mark = ""))
看看?label_number
,你可以指定来自base::format()
的参数。这里的技巧是 drop0trailing = T
.
big.mark = ""
用于去掉第1000位空的space。
ggplot(data = DF,
aes(x = X,
y = Y,
fill = Z)) +
geom_tile() +
scale_fill_distiller(palette = "YlGnBu",
trans = 'log10',
limits = c(0.001, 100000),
labels = label_number(drop0trailing = T, big.mark = ""))
我绘制了一个图,其中填充条为对数刻度。默认情况下,标签以 1e+01
、1e+02
等格式出现。我选择使用 scales
包修改标签,使用 label_number()
函数。但是,值 0.1
、10
、1000
和 100000
出现时带有额外的小数位。有什么方法可以显示这些数字而无需额外的小数位?
我想要这样的序列:0.001
、0.1
、10
、1000
和 100000
。
library(ggplot2)
library(scales)
X <- 0
Y <- 0
Z <- 10
DF <- data.frame(X, Y, Z)
ggplot(data = DF,
aes(x = X,
y = Y,
fill = Z)) +
geom_tile() +
scale_fill_distiller(palette = "YlGnBu",
trans = 'log10',
limits = c(0.001, 100000),
labels = label_number(big.mark = ""))
看看?label_number
,你可以指定来自base::format()
的参数。这里的技巧是 drop0trailing = T
.
big.mark = ""
用于去掉第1000位空的space。
ggplot(data = DF,
aes(x = X,
y = Y,
fill = Z)) +
geom_tile() +
scale_fill_distiller(palette = "YlGnBu",
trans = 'log10',
limits = c(0.001, 100000),
labels = label_number(drop0trailing = T, big.mark = ""))