我使用以下代码制作带有第一组我的值的情节(这里是犯罪数量)。
以下是我用来绘制它的代码:
library(lattice)
library(latticeExtra)
library(grid)
library(reshape)
library(RCurl)
dd <- read.csv(text = getURL("https://gist.githubusercontent.com/GeekOnAcid/da022affd36310c96cd4/raw/9c2ac2b033979fcf14a8d9b2e3e390a4bcc6f0e3/us_nr_of_crimes_1960_2014.csv"))
d <- melt(dd, id="Year")
names(d)[1] <- "time"
pdf("sparklines_lattice_multiple_ten.pdf", height=10, width=8)
xyplot(value~time | variable, d, xlab="", ylab="", strip=F, lwd=0.7, col=1, type="l",
layout=c(1,length(unique(d$variable))), between = list(y = 1),
scales=list(y=list(at=NULL, relation="free"), x=list(fontfamily="serif")),
par.settings = list(axis.line = list(col = "transparent"),
layout.widths=list(right.padding=20, left.padding=-5)),
panel = function(x, y, ...) {
panel.xyplot(x, y, ...)
pushViewport(viewport(xscale=current.viewport()$xscale-5,
yscale=current.viewport()$yscale, clip="off"))
panel.text(x=tail(x,n=1), y=tail(y,n=1), labels=levels(d$variable)[panel.number()],
fontfamily="serif", pos=4)
popViewport()
panel.text(x=x[which.max(y)], y=max(y), labels=round(max(y),0), cex=0.8,
fontfamily="serif",adj=c(0.5,2.5))
panel.text(x=x[which.min(y)], y=min(y), labels=round(min(y),0), cex=0.8,
fontfamily="serif",adj=c(0.5,-1.5))
panel.text(x=tail(x,n=1), y=tail(y,n=1), labels=round(tail(y,n=1),0), cex=0.8,
fontfamily="serif", pos=4)
panel.points(x[which.max(y)], max(y), pch=16, cex=1)
panel.points(x[which.min(y)], min(y), pch=16, cex=1, col="red")})
dev.off()
我需要的是:为每个迷你图添加一个额外的维度(即额外的行),每个犯罪类型的嫌疑人数量(例如,Vehicle.Theft,Larceny.Theft等)。换句话说,我还想在每个迷你图中添加额外的行来比较(1)犯罪数量和(2)每种犯罪类型的嫌疑人数量的动态。
要明确:我想为每个迷你图设置两行。
在你回答我的问题之前,请注意:
par(new=TRUE)
不起作用:Warning message: In par(new = TRUE) : calling par(new=TRUE) with no plot
。它只是在PDF文件中创建两个分开的页面,其中包含两个不同的迷你图。我需要相反的结果:同一PDF页面上的两个迷你图。非常感谢您为我提供的帮助(如果您这样做的话)。