面板图与r

时间:2016-03-30 05:36:38

标签: r

我有一个包含10列的csv文件,想要阅读并绘制其中的7个以及文本文件时间序列。使用以下代码,我可以绘制它们但面临一些问题:

1]绘图之间的空白区域使每个绘图看起来非常小。如何使用大部分空间? 2]图例重叠第7个图。如何将其放置在面板绘图区域8和9(因为不使用面板绘图区域8和9)

3]如何制作一个共同的x和y轴并定义每个面板图的单独标题

library(qmap)
obs <- read.table("D:/test.txt")
mod <- read.csv("D:/pr.csv", header = FALSE)
par(mfrow=c(3,3), oma = c(4, 1, 1, 1))
for(i in 4:10){
modp <- mod[,i]
qm1.fit <- fitQmap(obs,modp,
                 method="PTF",
                 transfun="expasympt",
                 cost="RSS",wett.day=TRUE)
qm1 <- doQmap(modprecip,qm1.fit)

# repeated same procedure for qm2, qm3, qm4, and qm5

# QQ-plot of all mappings
obs_v <- as.vector(as.matrix(obs))
mod_v <- as.vector(as.matrix(modp))
qqplot(mod_v, obs_v, col = 1, xlab = 'Pm [mm/day]', ylab = 'Po [mm/day]')
qqline(qm1, col = 2, lwd = 2)
qqline(qm2, col = 3, lwd = 2)
qqline(qm3, col = 4, lwd = 2)
qqline(qm5, col = 5, lwd = 2)

}

legend("bottom", inset=c(-0.2,0), legend=c("A","B"), pch=c(1,3), title="Group")

任何帮助都将非常感激

enter image description here

1 个答案:

答案 0 :(得分:2)

使用ggplot2可以很容易地生成这种情节。我将在ggplot2文档中显示以下示例,因为您的问题不包含可重复的示例:

library(ggplot2)
d <- ggplot(diamonds, aes(carat, price, fill = ..density..)) +
  xlim(0, 2) + stat_binhex(na.rm = TRUE) + theme(aspect.ratio = 1)
d + facet_wrap(~ color)

enter image description here

ggplot2解决了您的问题:

  1. 白色空间不再是问题。
  2. 传奇很好地放在一边。
  3. 默认情况下,x和y轴相同(如果需要,可以关闭它)
  4. 另请参阅this tutorial如果您想了解ggplot2的工作原理,我写了ggplot2