gpt4 book ai didi

r - R在y轴上更改缩放格式

转载 作者:行者123 更新时间:2023-12-03 13:44:15 25 4
gpt4 key购买 nike

我有一个图,分别在y和x轴上有$金额和日期。目前美元金额从0到15百万美元不等。像这样:

x <- rnorm(20)^2 * 1000000
plot(x)


R的作用类似于 '1.0e+07'而不是 '10,000,000',并且使文本垂直而不是水平定向。

我的问题是:

1)我如何将比例尺文字水平放置?

2)我如何让R使用 10MM代替 '10,000,000''1.0e+07'

最佳答案

1)参见scipen中的?options选项,这是对使用科学计数法的惩罚。为了更好地控制,您需要使用所需的标签手工绘制轴。

2)参见las中的?par,该控件可粗略地控制轴标签的方向。

对于1):

x <- rnorm(20)^2 * 10000000
layout(matrix(1:2, ncol = 2))
plot(x)
getOption("scipen")
opt <- options("scipen" = 20)
getOption("scipen")
plot(x)
options(opt)
layout(1)


这使



要绘制自己的轴,请尝试

plot(x / 10000000, axes = FALSE)
axis(1)
pts <- pretty(x / 10000000)
axis(2, at = pts, labels = paste(pts, "MM", sep = ""))
box()


这使



我们使用 pretty()像R一样为刻度线选择漂亮的位置,然后添加一个自定义轴。注意,我们如何在 plot()调用中抑制轴绘制,然后通过调用 axis()box()重新添加轴和绘图框架。

对于2)与1)结合

opt <- options("scipen" = 20)
op <- par(mar = c(5,7,4,2) + 0.1) ## extra margin to accommodate tick labs
x <- rnorm(20)^2 * 10000000
plot(x, las = 1, ylab = "") ## no y-axis label
title(ylab = "label", line = 5.5) ## need to plot the axis label
par(op)
options(opt)


这使



注意我们在 las调用中如何使用 plot(),并且我们需要创建一些额外的边距空间来容纳刻度标签。我们还需要手工绘制标签,否则R会将其粘贴在刻度标签中。

对于自定义轴标签,将 las = 1添加到 axis()调用中:

op <- par(mar = c(5,5,4,2) + 0.1)
plot(x / 10000000, axes = FALSE, ylab = "")
axis(1)
pts <- pretty(x / 10000000)
axis(2, at = pts, labels = paste(pts, "MM", sep = ""), las = 1)
title(ylab = "my label", line = 4)
box()
par(op)


哪个产生

关于r - R在y轴上更改缩放格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8918452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com