用自己的值替换X轴


95

我对命令plot()有疑问。

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

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

然后添加一个轴

axis(side = 1 etc.)

但是,当我添加轴时,显然它仍然引用绘制为“ x”的数据。我只想绘制“ y”值并以自己指定的值“绘制” x轴的方式添加我自己的x轴。有什么办法吗?

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


您是要绘制具有不同长度的矢量还是只想自己设置x标签?您能否提供示例或提供有关数据集的更多信息?
Manoel Galdino

您可能还想看看如何将两个数据帧组合在一起。您可能能够从数据中绘制更多的图,并可能使数据更具信息性。
山姆


可能是R的
2014年

Answers:


176

不知道这是否是您的意思,但是您可以这样做:

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

然后为您提供图形:

在此处输入图片说明


谢谢蒂姆!并非完全符合我的要求,但是它帮助我完成了自己想要的工作=)
Dani

5
在这种情况下,x和y的长度相同。当另一根轴的长度为m时,如何绘制n个标签?
Colbert Sesanker

2
仅供参考:命令中的xaxt="n"选项plot禁止显示x轴的标签。如果不包括此选项,则为axisNOOP。
斯蒂恩

这可行,但是如何旋转它使其垂直呢?las = 2不起作用。
runningbirds

我尝试了解决方案。xaxt = "n"选项适用于ts级时间序列。但是,在多个时间序列(mts类)的情况下,它不起作用。
Erdogan CEVHER

14

您也可以将其labels = FALSE放置在内部,axis(...)并使用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)

详细说明在这里

具有旋转标签的图像


链接detailed explanation已死
javadba
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.