【发布时间】:2013-09-07 17:54:26
【问题描述】:
我想使用 lattice 包生成等高线图,其中 y 轴从顶部开始并到达底部(即顶部的最小值,底部的最大值)。 如果我更改以下内容:
contourplot(Male ~ Age * Year, data=this.ds)
到
contourplot(Male ~ Age * rev(Year), data=this.ds)
然后图形被正确绘制,但 y 轴刻度线标签没有反转。 (即仍然从底部开始并到达顶部。) - (有关完全可重现的示例,请参阅消息末尾。)
我认为答案涉及使用“比例”列表对象(所以我认为这是一个单行解决方案),但不确定它是什么。
非常感谢您的帮助,乔恩
完全可重现的示例:
library(lattice)
attach(environmental)
ozo.m <- loess((ozone^(1/3)) ~ wind * temperature * radiation,
parametric = c("radiation", "wind"), span = 1, degree = 2)
w.marginal <- seq(min(wind), max(wind), length.out = 50)
t.marginal <- seq(min(temperature), max(temperature), length.out = 50)
r.marginal <- seq(min(radiation), max(radiation), length.out = 4)
wtr.marginal <- list(wind = w.marginal, temperature = t.marginal,
radiation = r.marginal)
grid <- expand.grid(wtr.marginal)
grid[, "fit"] <- c(predict(ozo.m, grid))
照常绘制:
contourplot(fit ~ wind * temperature, data = grid,
cuts = 10, region = TRUE,
xlab = "Wind Speed (mph)",
ylab = "Temperature (F)",
main = "Cube Root Ozone (cube root ppb)")
在温度上使用 rev() 函数:
contourplot(fit ~ wind * rev(temperature), data = grid,
cuts = 10, region = TRUE,
xlab = "Wind Speed (mph)",
ylab = "Temperature (F)",
main = "Cube Root Ozone (cube root ppb)")
detach()
我希望 y(温度)轴标签和 y 轴值一样颠倒。 (即它从下到上读取 90、80、70、60,而不是 60、70、80、90)
【问题讨论】:
-
谢谢。我添加了一个完全可重现的示例,试图让这一点更清楚。
-
感谢一个很好的例子!一件小事,在这两个命令之间插入一个换行符:
grid <- expand.grid(wtr.marginal) grid[, "fit"] <- c(predict(ozo.m, grid))(我不被允许做这个编辑)。然后,任何想要帮助您的人都可以很容易地复制粘贴您的代码并使用它。谢谢!