我有格子的xy情节,我在其中展示了四种不同的东西。情节现在看起来像这样。粉色线的值范围为1到15000,但是其他线的值范围从20到300.这就是为什么除粉红色之外的所有线都看起来都是静态的。但是,它们有波动,但我觉得图表并没有因为yaxis而显示它们的属性。有没有办法可以缩短y轴,以便图形更好地代表其他线?
当我不将粉红色的线条全部绘制在一起时,这就是它的样子。这表明我想表现出波动。
答案 0 :(得分:0)
如果你可以使用基础包而不是格子,那很简单。下面的代码大大简化了我自己的一个图。你将不得不用它来添加两行。
线描述
来自数据框的1,2图。 ylab将在第2侧(左侧)缩放,将自动从数据中确定
3开始第二个情节
从数据框中绘制4个图,使用axes = FALSE,xlab = NA,ylab = NA
5创建第4侧(右)刻度的轴将自动从数据中确定
6为第4侧制作ylab
1 plot(df[c(4,5)], type = "s", col = "blue", main = "Battery Life",
2 xlab="minutes", ylab="percent")
3 par(new=TRUE)
4 plot(df[c(4,6)], type = "s", col = "red", axes = FALSE, xlab = NA, ylab = NA)
5 axis(side = 4)
6 mtext(side = 4, line = 3, "Slope ( minutes)")
答案 1 :(得分:0)
您可以使用latticeExtra包创建一个包含2个单独y轴的图形。
正如评论所示,我宁愿创建2个单独的图。这是一个更清洁的解决方案。
作为替代方案:也许您可以为数据添加一个条件变量(“大小”左右),将数据分组为合适的块。然后,您可以显示如下所示的数据。
library("lattice")
library("latticeExtra")
dat1 <- data.frame(x=1:100, y1=rep(1:10,10), y2=rep(100:91,10))
dat2 <- data.frame(x=1:200, y=c(rep(1:10,10), rep(100:91,10)),
z=c(rep("small",100), rep("huge",100)))
p1 <- xyplot(y1~x, data=dat1, type="l")
p2 <- xyplot(y2~x, data=dat1, type="l")
doubleYScale(p1, p2) # 2 y-axis: bad
xyplot(y ~ x | z, data=dat2, type="l", scales="free") # 2 plots: good