r - 如何避免在ggplot的Y轴上舍入小数
问题描述
在下图中:
Y 轴的值为 1.9999999925(对于 99 个步骤)和 1.9999999882(对于其余步骤)。如您所见,该图仅显示值 2,因为它将两个值的小数四舍五入为 2。如何避免这种情况并按原样显示这两个值?
这是我为生成绘图而编写的 R 脚本:
dataset <- readr::read_csv("/data.csv")
dataset <- dataset %>% melt(id.vars = c("Class"))
dataset <- transform(dataset, value = value)
YaxisTitle <- "Fitness"
class <- "Steamer"
p2_data <- dataset %>% filter(Class == class)
pp2 <- p2_data %>% ggplot(aes(x=factor(variable), y=value, group=Class, colour=Class)) + geom_line() + scale_x_discrete(breaks = seq(0, 1000, 100)) + labs(x = "Steps", y = YaxisTitle) + theme(legend.position="none")
解决方案
如果我从如何更改 ggplot2 中轴标签上的小数位数?我确实设法更改标签。
关键是更改比例功能scaleFUN
以允许原始帖子中超过 2 位小数到 9 位小数(或您需要的任何数字)。所以从"%.2f"
到"%.9f"
。
df <- data.frame(Steps=1:1000, Fitness=c(rep(1.9999999925,99),rep(1.9999999882,901)))
library(ggplot2)
scaleFUN <- function(x) sprintf("%.9f", x)
ggplot(data=df,aes(x=Steps,y=Fitness)) +
geom_line() +
scale_y_continuous(labels=scaleFUN)
推荐阅读
- c - char a[] = {'a', '\0'} 和 char *b = "a" 是否相等?
- file - 使大型静态数据文件可用于 kubernetes pod
- regex - 如何为 reg 文件中的多行值正确构建 RegEx
- python-3.x - Kera LSTM 输入如何与输出对应
- python - 带参数的 xarray dataset.sel
- swift - “无法打开文件“photo.jpg”,因为无法确定其内容的文本编码。” ios swift中的错误
- postgresql - 迭代生长表
- ruby - 如何使用 Ruby 通过终端传递方法变量?
- iis - 是否可以在 url 重写规则中创建一个仅适用于部分用户的条件
- sql - 如何将一个表上的 3 列与另一表中的 1 列连接起来?