【问题标题】:Take plot range literally in R?在 R 中按字面意思计算情节范围?
【发布时间】:2013-09-09 09:20:37
【问题描述】:

我有以下数据集:

x = c(4, 5, 10, 30, 50, 51)
y = sqrt(x)

我想在 5-50 的 x 范围内绘制数据

plot(x,y, xlim=c(5, 50))
abline(v=c(5,50), col="red")

但该范围之外的数据点仍然可见。 有没有一种简单的方法可以告诉plot() 从字面上理解限制。 到目前为止,我想出了两个想法:

  1. 删除绘图的边距(我实际上喜欢边距,但不喜欢可见的数据)
  2. 在绘制变量之前从变量中排除数据(根据我的经验,这总是很乏味 - 当您在 data.frame 中组织数据时,subset() 可能会起作用)

【问题讨论】:

  • 以下是您要查找的内容吗?

标签: r plot limit subset


【解决方案1】:

默认情况下,R 在尝试找到 nice 标签中断(例如 2,4,65,10,15 等)之前会稍微扩展轴的范围(4%)。您可以使用par 参数xaxs="i" 覆盖它 - 代表internal,您可以在调用绘图时将其作为... 参数之一传递:

plot(x,y, xlim=c(5, 50) , xaxs = "i" )

来自par 帮助页面的一些信息可能有用:

xaxs
用于 x 轴的轴间隔计算样式。可能的值是“r”、“i”、“e”、“s”、“d”。
样式通常由数据范围或 xlim(如果给定)控制。

  • 样式“r”(常规)首先在每一端将数据范围扩展 4%,然后找到一个带有漂亮标签且适合扩展范围的轴。
  • 样式“i”(内部)只会找到一个带有漂亮标签且适合原始数据范围的轴。

【讨论】:

  • 该死的……被秒杀了。 :-)
  • 我的意思是,如果每次发生在我身上的事情我都有一分钱。我至少会好一点。
猜你喜欢
  • 1970-01-01
  • 2017-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
相关资源
最近更新 更多