gpt4 book ai didi

r - 如何在R中自定义y轴步长

转载 作者:行者123 更新时间:2023-12-04 05:40:20 25 4
gpt4 key购买 nike

我想绘制一个散点图,y 轴被自定义为 0.2 的步长,在 0 - 2.6 的范围内,并且可以自动定义 x 轴。我尝试了以下方法,但它不起作用。我可以知道如何正确设置参数吗?

# Read data
pt.n <- read.table("p0_n300m20r1c1_regression.txt", header=T)
# auto-scale
# plot(pt.n$maee~pt.n$idx, main="P2PSim Seq#1,300n,20%,1r,Corrective", ylab="MAEE", xlab="Seq #")

# customize
ylabel <- c(0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6)
y_range <- range(0, ylabel)
plot(pt.n$maee~pt.n$idx, main="P2PSim Seq#3,300n,20%,1r,Corrective", ylab="MAEE", xlab="Seq #", ylim=y_range, axes=FALSE, ann=FALSE)
axis(1, at=0:6, lab=c(0,50,100,150,200,250,300))
axis(2, las=1, at=0.2*0:y_range[1])
box()

最佳答案

如果某些东西不工作,请检查没有做你想做的事情的每一点,以确保你提供了正确的数据并且没有发出嘘声。如果我们运行与轴相关的代码位

ylabel <- c(0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6)
y_range <- range(0, ylabel)
0.2*0:y_range[1]

您会立即看到问题:
R> 0.2*0:y_range[1]
[1] 0

你基本上是在告诉 R 在 0 处画一个勾号。即使你选择了 y_range 的正确元素(最大值在第二个元素中)你仍然不会得到正确的答案:
R> 0.2*0:y_range[2]
[1] 0.0 0.2 0.4
R> 0:y_range[2]
[1] 0 1 2

那是因为 : 的方式运算符(operator)工作。调用 x:y本质上是对 seq(from = x, to = y, by = 1) 的调用因为 2.6+1大于 2.6 ( to 参数)R 创建序列 0, 1, 2 .

如果要在 0 - 2.6 以 0.2 递增绘制刻度和标签,请使用:
ylabel <- seq(0, 2.6, by = 0.2)
axis(2, at = ylabel)

在哪里 ylabel现在包含:
R> ylabel
[1] 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6

为了显示:
dat <- data.frame(y = runif(20, min = 0, max = 3),
x = rnorm(20))

plot(y ~ x, data = dat, axes = FALSE)
ylabel <- seq(0, 2.6, by = 0.2)
axis(1)
axis(2, at = ylabel, las = 1)
box()

产生

enter image description here

关于r - 如何在R中自定义y轴步长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12634778/

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