ChatGPT解决这个技术问题 Extra ChatGPT

用自己的值替换 X 轴

我有一个关于命令 plot() 的问题。

有没有办法完全消除 x 轴并用自己的值替换它?我知道我可以通过做摆脱轴

plot(x,y, xaxt = 'n')

然后添加一个轴

axis(side = 1 etc.)

但是,当我添加轴时,显然它仍然指的是绘制为“x”的数据。我只想绘制'y'值并添加我自己的x轴,只是“绘制”指定了自己的值的x轴。有没有办法做到这一点?

这个问题的背景是我的两个数据框的长度不同,因此我无法绘制它们。

您想绘制不同长度的向量还是只想自己设置 x 标签?您能否提供一个示例或提供有关数据集的更多信息?
您可能还想了解如何将两个数据框组合在一起。您可能能够从数据中绘制更多图,并且可能使数据更具信息性。

t
tim_yates

不确定这是否是您的意思,但您可以这样做:

plot(1:10, xaxt = "n", xlab='Some Letters')
axis(1, at=1:10, labels=letters[1:10])

然后给你图表:

https://i.stack.imgur.com/glqej.png


谢谢蒂姆!不完全是我想要的,但它帮助我做我想做的事=)
在这种情况下,x 和 y 的长度相同。当另一个轴的长度为m时,如何绘制n个标签?
仅供参考:plot 命令中的 xaxt="n" 选项禁止标记 x 轴。如果不包括此选项,axis 将是 NOOP。
这可行,但我如何旋转它使其垂直? las=2 不起作用。
我尝试了解决方案。 xaxt = "n" 选项适用于 ts 类时间序列。但是,在多个时间序列(mts-class)的情况下,它不起作用。
u
user9869932

您可以在 axis(...) 中设置 labels = FALSE,然后使用 text(...) 在单独的命令中打印标签。此选项允许您在需要时旋转文本。

lablist<-as.vector(c(1:10))
axis(1, at=seq(1, 10, by=1), labels = FALSE)
text(seq(1, 10, by=1), par("usr")[3] - 0.2, labels = lablist, srt = 45, pos = 1, xpd = TRUE)

详解here

https://i.stack.imgur.com/j35Lv.gif