R 为什么省略最后一个x轴标签?
在以下示例中,省略了最后一个x轴标签(“4.0”)R 为什么省略最后一个x轴标签?,r,plot,R,Plot,在以下示例中,省略了最后一个x轴标签(“4.0”) df <- data.frame(x = c(1, 2, 3.8), y = c(1, 2, 3)) #png(filename = "cutoff.png") plot(df$x, df$y, xaxt = "n") axis(side = 1, at = seq(0, 4, 0.5), labels = seq(0, 4, 0.5)) #dev.off() df您的轴限制不包括4;您需要使用xlim覆盖绘图的默认限制(它从数据中导出
df <- data.frame(x = c(1, 2, 3.8), y = c(1, 2, 3))
#png(filename = "cutoff.png")
plot(df$x, df$y, xaxt = "n")
axis(side = 1, at = seq(0, 4, 0.5), labels = seq(0, 4, 0.5))
#dev.off()
df您的轴限制不包括4;您需要使用xlim
覆盖绘图的默认限制(它从数据中导出):
plot(df$x, df$y, xaxt = "n", xlim = c(1, 4))
请注意,使用axis
时,您对at
的指定将成为您的标签
,除非您覆盖该标签,因此您的脚本不需要指定标签
;您的脚本可以变成:
您的轴限制不包括4;您需要使用xlim
覆盖绘图的默认限制(它从数据中导出):
plot(df$x, df$y, xaxt = "n", xlim = c(1, 4))
请注意,使用axis
时,您对at
的指定将成为您的标签
,除非您覆盖该标签,因此您的脚本不需要指定标签
;您的脚本可以变成:
正如@griffinevo回答的(+1),如果希望轴限制变为4,则必须使用xlim
指定。但是,可能有必要解释如何计算默认限制。文档中对此进行了解释,但有些模糊。在“帮助”页面上,搜索xaxs
。你会看到的
样式“r”(常规)首先在每个位置将数据范围扩展4%
结束,然后找到一个轴,该轴具有适合该轴的漂亮标签
扩大射程
在您的情况下,数据范围为1到3.8。所以plot会在范围内寻找漂亮的标签
1 - 0.04*(3.8-1) = 0.888
to
3.8 + 0.04*(3.8-1) = 3.912
4不在此范围内,因此不会显示为轴标签。为了完整起见,值得注意的是,“pretty”听起来只是一个词,但实际上在这里有一个技术含义——与pretty
函数相关。如果查看帮助页面?pretty
,您将看到以下说明:
计算一个由大约n+1个等距“圆形”值组成的序列,其中
覆盖x中的值范围。选择这些值是为了
是10的幂的1、2或5倍
帮助页面上有其他详细信息 如@griffinevo回答(+1),如果希望轴限制变为4,则必须使用xlim
指定。但是,可能有必要解释如何计算默认限制。文档中对此进行了解释,但有些模糊。在“帮助”页面上,搜索xaxs
。你会看到的
样式“r”(常规)首先在每个位置将数据范围扩展4%
结束,然后找到一个轴,该轴具有适合该轴的漂亮标签
扩大射程
在您的情况下,数据范围为1到3.8。所以plot会在范围内寻找漂亮的标签
1 - 0.04*(3.8-1) = 0.888
to
3.8 + 0.04*(3.8-1) = 3.912
4不在此范围内,因此不会显示为轴标签。为了完整起见,值得注意的是,“pretty”听起来只是一个词,但实际上在这里有一个技术含义——与pretty
函数相关。如果查看帮助页面?pretty
,您将看到以下说明:
计算一个由大约n+1个等距“圆形”值组成的序列,其中
覆盖x中的值范围。选择这些值是为了
是10的幂的1、2或5倍
帮助页面上有其他详细信息