我使用Lattice
绘制了直方图histogram(~Time |factor(Bila), data=flexi2, xlim= c(5, 15), ylim=c(0, 57),
scales=list(x=list(at=seq(5,15,1))), xlab="Time",
subset=(Bila%in% c("")))`
我得到的垃圾箱与确切的小时数不匹配,而我希望垃圾箱在确切的时间开始,例如,6,7等。我使用晶格,因为我想要条件直方图。我在这里提取了一个直方图来说明。
更新: 这是一个可重复的例子(我希望)。可以看出0例如不在箱子的极限。
x<-rnorm(1000)
histogram(~x)
答案 0 :(得分:2)
这是因为您使用scales = list(x = list(at = 5:15))
指定了x轴刻度,但实际上并未更改断点。它也出现在默认情况下:默认轴标签是整数,但默认断点是以编程方式确定的,除非您有整数值数据,否则不一定是整数。
一个简单的解决方法是在breaks
参数中指定自己的中断:
histogram(~Time |factor(Bila), data=flexi2, subset=(Bila %in% c("")),
xlim= c(5, 15), ylim=c(0, 57),
breaks = 5:15,
scales = list(x = list(at = 5:15)),
xlab="Time")
一个例子:
library(lattice)
x <- rnorm(1000)
x[abs(x) > 3] <- 3
x_breaks <- c(-3, -1.5, 0, 1.5, 3)
histogram(~ x,
title = "Defaults")
histogram(~ x, breaks = x_breaks,
title = "Custom bins, default tickmarks")
histogram(~ x, scales = list(x = list(at = x_breaks)),
title = "Custom tickmarks, default bins")
histogram(~ x, breaks = x_breaks, scales = list(x = list(at = x_breaks)),
title = "Custom tickmarks, custom bins")