【问题标题】:Adding custom tick marks on R plot在 R 图上添加自定义刻度线
【发布时间】:2012-12-02 14:11:28
【问题描述】:

我正在绘制一些数据的 cdf,并在“x”轴上添加了对数刻度。 刻度间距正是我想要的,但我希望能够添加 一些在特定点上打勾。

我不想改变我的情节中刻度线的分布,从 n by nm by m,我只想在来自 n by n 的刻度线中,进一步 在某些值上打勾。

我想让它同时反映在 xy 轴上,这样我就可以在整个图表中将网格放入这些新标记中。

到目前为止,我已经有了图表和网格——我不介意在图表后面或上面放置网格,我只想添加一些自定义刻度。

# Cumulative Distribuition
pdf("g1_3.pdf")

plot(x = f$V2, y = cumsum(f$V1), log = "x", pch = 3,
     xlab = "Frequency", ylab = "P(X <= x)",
     panel.first = grid(equilogs = FALSE))

axis(1, at = c(40, 150))
abline(h = 0.6, v = 40, col = "lightgray", lty = 3)
abline(h = 0.6, v = 150, col = "lightgray", lty = 3)

dev.off()

更新:我目前的图表:

【问题讨论】:

  • 您可以尝试在plot()函数之后用函数axis()添加额外的刻度,例如axis(1,at=c(3,25,345))
  • 谢谢,我试过了,但它只添加了一个刻度线,网格没有被重新配置。三栏是干什么用的?我注意到 345 是我想坐在刻度线的地方,但是 3 和 25 呢?
  • 请阅读?axis?grid
  • 数字 3 和 25 只是示例。另一种解决方案是使用函数 abline() 并在需要的地方制作水平线和垂直线
  • 如有疑问,尝试实验;如果您运行 @Didzis 提供的代码(在运行 dev.off() 之前),您会看到它会在 x 位置 3 处向底轴添加刻度(第一个或 side 参数等于 1), 25, 345 ...

标签: r plot


【解决方案1】:

考虑到最初的脚本,以及@BenBolker 给出的提示,我不得不使用:

axis(side = 1, at = c([all the ticks you want]))

为了在图中添加ticks。这是最终结果:

# Cumulative Distribuition
pdf("g1_3.pdf")

plot(x = f$V2, y = cumsum(f$V1), log = "x", pch = 3,
     xlab = "Frequency", ylab = "P(X <= x)", axes = FALSE)

ticks = c(1, 5, 10, 40, 150, 500, 1000)
axis(side = 1, at = ticks)
axis(side = 2)

abline(h = seq(0, 1, 0.2), v = ticks, col = "lightgray", lty = 3)
box()

【讨论】:

  • 不错的答案(顺便说一句,您不需要在行尾使用分号)
  • @BenBolker 感谢您的支持,我一直在努力想在abline 调用的参数hv 中使用不同长度的列表,但似乎这些行是单独生成。
猜你喜欢
  • 2016-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
相关资源
最近更新 更多