Tôi có chuỗi thời gian nhiều biến là một số biến có phạm vi khá lớn. Tôi muốn tạo một cốt truyện một trang với nhiều ô xếp chồng lên nhau của mỗi biến là một số biến có thang tỷ lệ trục y log10. Tôi tương đối mới với mạng và không thể tìm ra cách kết hợp hiệu quả quy mô log10 với các trục không biến đổi và có được một âm mưu chất lượng xuất bản. Nếu print.trellis được sử dụng thì các ô không được căn chỉnh và phần đệm cần một số công việc, nếu c.trellis được sử dụng thì bố cục là tốt, nhưng chỉ sử dụng thang đo y chỉ từ một ô. Bất kỳ đề xuất cho một giải pháp hiệu quả, nơi tôi có thể nhân rộng đầu ra của c.trellis bằng cách sử dụng y-scaling khác nhau cho mỗi đối tượng (bản gốc)? Ví dụ bên dưới:mạng hoặc mạngExtra kết hợp nhiều ô khác nhau yscaling (log10 và không chuyển đổi)
require(lattice)
require(latticeExtra)
# make data.frame
d.date <- as.POSIXct(c("2009-12-15", "2010-01-15", "2010-02-15", "2010-03-15", "2010-04-15"))
CO2dat <- c(100,200,1000,9000,2000)
pHdat <- c(10,9,7,6,7)
tmp <- data.frame(date=d.date ,CO2dat=CO2dat ,pHdat=pHdat)
# make plots
plot1 <- xyplot(pHdat ~ date, data=tmp
, ylim=c(5,11)
, ylab="pHdat"
, xlab="Date"
, origin = 0, border = 0
, scales=list(y=list(alternating=1))
, panel = function(...){
panel.xyarea(...)
panel.xyplot(...)
}
)
# make plot with log y scale
plot2 <- xyplot(CO2dat ~ date, data=tmp
, ylim=c(10,10^4)
, ylab="CO2dat"
, xlab="Date"
, origin = 0, border = 0
, scales=list(y=list(alternating=1,log=10))
, yscale.components = yscale.components.log10ticks
, panel = function(...){
panel.xyarea(...)
panel.xyplot(...)
# plot CO2air uatm
panel.abline(h=log10(390),col="blue",type="l",...)
}
)
# plot individual figures using split
print(plot2, split=c(1,1,1,2), more=TRUE)
print(plot1, split=c(1,2,1,2), more=F)
# combine plots (more convenient)
comb <- c(plot1, plot2, x.same=F, y.same=F, layout = c(1, 2))
# plot combined figure
update(comb, ylab = c("pHdat","log10 CO2dat"))
Các bạn đã thử đệm nhãn trục y đánh dấu trong plot1 với lãnh đạo không gian trống (cho môi trường 'phương pháp print.trellis'), hoặc bạn đang tìm kiếm một giải pháp quảng cáo hoc ít hơn? – joran
Hi @joran: hãy xem nỗ lực của tôi về ý tưởng của bạn bên dưới. – Aaron