【问题标题】:How to change axis scale in lattice::xyplot如何更改 lattice::xyplot 中的轴比例
【发布时间】:2014-07-26 20:25:41
【问题描述】:

我对 R 比较陌生,并试图使用 lattice xy plot 制作一个图形。

这是当前的图和数据框:

Plot9Pn <- c(46, 33, 28)
Plot11Pn <- c(20, 18, 10)
Plot14Pn <- c(34, 28, 26)
Plot15Pn <- c(57, 33, 12)
Plot9Pr <- c(30, 46, 95)
Plot11Pr <- c(8, 11, 14)
Plot14Pr <- c(10, 46, 46)
Plot15Pr <- c(15, 37, 110)

Pn.vs.Pr.dat <- data.frame (x=rep (2009:2011, 8), y=c(Plot9Pr, Plot9Pn, Plot11Pr, Plot11Pn, Plot14Pr, Plot14Pn, Plot15Pr, Plot15Pn),
               var=factor(rep(c("Pram","Pnem"), each=3)),
               graph=factor (rep (c(" A. Plot 9", "B. Plot 11", "C. Plot 14", "D. Plot 15"), each=6)))

require(lattice)  # no need to install but loading is required.

xyplot (y ~ x | graph, groups=var, data=Pn.vs.Pr.dat, type="o", pch=my.pch, lty=1,
    main="Changes in P. nemorosa vs. P. ramorum occurence", layout=c(1, 4), as.table=T,      xlab="Year", ylab="No. Positive",
    strip.left=T, strip=F,
    key=list (columns=2, text=list (my.text), points=list (pch=my.pch, col=my.col),
              lines=list (lty=1, col=my.col)))

我希望 X 轴一年只显示三个刻度,并更改 Y 轴的比例以适合每个图。

【问题讨论】:

  • 要么定义 my.pch 之类的所有杂乱无章的东西,要么将其从代码中删除!
  • 我不知道你为什么要为传奇做所有这些工作。而不是key=,你可能只想要auto.key=list(columns=2)

标签: r plot lattice


【解决方案1】:

只需将其添加到 xyplot 参数中:

   ... , scales=list(x=list(at=c(2009,2010,2011), labels=c(2009,2010,2011))), 

一般原则是将参数作为列表传递,第一个参数中的一个或两个可以是“x”或“y”,并且您可以在 ?xyplot 中找到可用的参数。

【讨论】:

  • 这个命令如何处理负数?我只能通过...at=c(....,.....) 获得正值
  • 如果值对应问题的域,则没有问题。但是,当图形的域超出 at 的值时,不会出现任何内容,也不会出现错误或警告。如果这不能解释您的困难,那么您需要使用minimal reproducible example 发布一个新问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-05
  • 2014-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
相关资源
最近更新 更多