如何使用 R 中的 plot() 将间距和比例更改为对数比例?
how to change spacing and scales to a log scale using plot() in R?
我正在尝试使用 R 中的 "smatr" 包绘制 SMA 线性回归的结果。我已经能够创建一个绘图:
sma<-sma(data = forewing_R ,formula = y~x*groups,
method = "SMA", type = "shift", log = "xy")
plot(sma, col = c("Black", "Red", "Blue", "Dark Green"),
pch= c(5:10), log = "xy")
legend(0.765, 0.84, c("Control", "Low", "Medium", "High"),
pch = c(5,7,8,6), col=c("Black", "Blue", "Dark Green", "Red"))
但是,轴上的数字应该是对数标度的。最后的数字应该是这个样子:
注意它们是多么相似的数字,但对数刻度间距不同。不幸的是,我无法弄清楚如何进行这些调整。如果有人可以提供帮助,那就太好了。
R 基图中的对数刻度很简单。
x <- y <- 1:10
plot(y~x, log='xy')
两个备选方案:
plot(y~x, log='x'); plot(y~x, log='y')
编辑
你在图表上看不到对数刻度的原因是它太小了
x_small <- y_small <- seq(0.7,0.8,0.01)
x <- y <- seq(0.1,0.9,0.01)
plot(y_small ~ x_small, log='xy') #domain too small to see effect of log
plot(y ~ x, log='xy') #domain large enough to see effect of log
我正在尝试使用 R 中的 "smatr" 包绘制 SMA 线性回归的结果。我已经能够创建一个绘图:
sma<-sma(data = forewing_R ,formula = y~x*groups,
method = "SMA", type = "shift", log = "xy")
plot(sma, col = c("Black", "Red", "Blue", "Dark Green"),
pch= c(5:10), log = "xy")
legend(0.765, 0.84, c("Control", "Low", "Medium", "High"),
pch = c(5,7,8,6), col=c("Black", "Blue", "Dark Green", "Red"))
但是,轴上的数字应该是对数标度的。最后的数字应该是这个样子:
注意它们是多么相似的数字,但对数刻度间距不同。不幸的是,我无法弄清楚如何进行这些调整。如果有人可以提供帮助,那就太好了。
R 基图中的对数刻度很简单。
x <- y <- 1:10
plot(y~x, log='xy')
两个备选方案:
plot(y~x, log='x'); plot(y~x, log='y')
编辑
你在图表上看不到对数刻度的原因是它太小了
x_small <- y_small <- seq(0.7,0.8,0.01)
x <- y <- seq(0.1,0.9,0.01)
plot(y_small ~ x_small, log='xy') #domain too small to see effect of log
plot(y ~ x, log='xy') #domain large enough to see effect of log