【发布时间】:2016-02-18 13:43:26
【问题描述】:
我有不同国家、不同年份的数据,以及每个国家/地区年份的多个变量的不同值。我正在尝试为每个国家/地区绘制多个多线图(这些线是这些变量/年份)。
由于某些未知原因,运行以下命令时,我得到的图是空的:
par(mfrow=c(5,5))
mysplits<-split(A,A$country)
for (ii in 1:length(mysplits)) {
adf<-mysplits[[ii]]
snames<- names(mysplits)[ii]
p<-plot(1,
main=paste(snames),
type = "n", xlim=c(1993,2015),
ylab = "value", xlab="years", ylim=c(-50,50))
lines(adf$year, adf$tone, col = "steelblue", lty=5)
lines(adf$year, adf$articles, col = "pink", lty=2)
lines(adf$year, adf$num, col = "red", lty=3)
lines(adf$year, adf$gold, col = "green", lty=6)
legend("bottomright", legend = c("EPE Public","Tone","Coverage","No of Events",
"Conflictual"), col = c("black","steelblue","pink","red","green"),
lty = c(1,5,2,3,6),
cex = 1.5, seg.len=4)
}
这是dput(head(A))的输出:
structure(list(X = 1:6, country = structure(c(1L, 1L, 1L, 1L,
1L, 1L), .Label = c("AU", "BE", "BU", "DA", "EN", "EZ", "FI",
"FR", "GM", "HR", "HU", "IT", "LG", "LH", "LO", "LU", "MT", "NL",
"PL", "RO", "SI", "SP", "SW"), class = "factor"), year = 1994:1999,
gold = c(-0.571428571, -2.4, 1.26, -0.2, -0.966666667, 0.316666667
), tone = c(324L, 239L, 251L, 72L, 61L, 159L), articles = c(3.571428571,
4.5, 8.2, 4.6, 9.333333333, 6.166666667), num = c(7L, 4L,
5L, 5L, 6L, 6L), yepe = 1995:2000, couepe = structure(c(1L,
1L, 1L, 1L, 1L, 1L), .Label = c("AU", "BE", "BU", "DA", "EN",
"EZ", "FI", "FR", "GM", "HR", "HU", "IT", "LG", "LH", "LO",
"LU", "MT", "NL", "PL", "RO", "SI", "SP", "SW"), class = "factor"),
epepub = c(2.01, 1.87, 0.55, 0.63, 0.52, 0.82), epepriv = c(NA,
NA, 2.63, 2.71, 2.59, 2.12), epeind = c(0.65, 0.66, 0.72,
0.63, 0.57, 0.53)), .Names = c("X", "country", "year", "gold",
"tone", "articles", "num", "yepe", "couepe", "epepub", "epepriv",
"epeind"), row.names = c(NA, 6L), class = "data.frame")
这是我的数据图像:
【问题讨论】:
-
你有一些我们可以测试的数据吗?
-
嗨,欢迎来到 StackOverflow。提供一些数据的最简单方法是使用
dput(head(a))并将其编辑到您的开篇帖子中。在执行此操作之前,请确保您可以使用head(a)复制您的问题。另外,空地是什么意思?轴是否仍然显示或一切都是白色的? -
尝试相同的脚本,但使用
par(mfrow=c(1,1))。如果这确实有效并给出了图,那么问题是您试图在单个显示器上获得太多图。对于par(mfrow=c(5,5)),每个图都没有足够的空间来显示。至少当我尝试运行脚本时似乎会发生这种情况。 -
将绘图发送到图形设备:
pdf('plots.pdf'); par(mfrow=c(5,5)); for (...); dev.off() -
我将您的答案转换为编辑。请不要使用答案来为您的问题添加信息。相反,edit 的问题。另外,我修复了你的图像。但请注意,您应该在问题中传递实际数据,而不是数据图像。图片用处不大!