如何指定实际的x轴值作为R中的x轴刻度
我正在创build一个R的情节,我不喜欢由R绘制的X轴值。
例如:
x <- seq(10,200,10) y <- runif(x) plot(x,y)
这在X轴上绘制了具有以下值的图表:
50, 100, 150, 200
但是,我想绘制variablesx中存储的10,20, 30 ... 200
个值作为X轴值。 我已经搜遍了无数的博客和简短的手册 – 经过几个小时的search,最接近我find有用的是以下(总结)的指示:
- 调用
plot()
或par()
,指定参数xaxt='n'
- call
axis()
例如axis(side = 1, at = seq(0, 10, by = 0.1), labels = FALSE, tcl = -0.2)
我试了一下,结果绘图根本没有X轴值。 有人可能知道如何做到这一点? 我不敢相信以前从来没有人尝试过这样做。
您可以在?axis
的帮助页面find您的问题的答案。
以下是帮助页面示例之一,使用您的数据进行了修改:
选项1:使用xaxp
定义轴标签
plot(x,y, xaxt="n") axis(1, xaxp=c(10, 200, 19), las=2)
选项2:使用at
和seq()
来定义标签:
plot(x,y, xaxt="n") axis(1, at = seq(10, 200, by = 10), las=2)
这两个选项都产生相同的graphics:
PS。 既然你有大量的标签,你将不得不使用额外的参数来使文本适合情节。 我用las
来旋转标签。
仔细看看?axis
文档。 如果你看一下labels
参数的描述,你会发现它是:
"a logical value specifying whether (numerical) annotations are to be made at the tickmarks,"
所以,只要把它改成true,你就会得到你的刻度标签。
x <- seq(10,200,10) y <- runif(x) plot(x,y,xaxt='n') axis(side = 1, at = x,labels = T) # Since TRUE is the default for labels, you can just use axis(side=1,at=x)
要小心,如果你不扩展你的窗口宽度,那么R可能无法写入所有的标签。使用窗口宽度,你会明白我的意思。
这很糟糕,你有这样的麻烦寻找文件! 你的search条件是什么? 尝试在Google中inputr axis
,您将获得的第一个链接是前面提到的Quick R页面 。 向下滚动到“轴”,你会得到一个非常好的小指南如何做到这一点。 你应该首先在那里检查任何阴谋问题,这将比等待SO回复更快。
希望这个编码能帮助你:)
plot(x,y,xaxt = 'n') axis(side=1,at=c(1,20,30,50),labels=c("1975","1980","1985","1990"))