通过两行比较生成多个图

时间:2019-01-30 03:18:28

标签: r ggplot2

Example database

对于每个项目,我想在同一轴上绘制两天的5种不同价格。

我只能绘制一项(即“ a”),但我想生成多个图形并自动保存。

我的实际数据集比示例大得多。

我一直在使用这段代码来尝试保存图形,但是效果不佳:

 mypath <- file.path("C:","R","SAVEHERE",paste("myplot_", names[i], ".jpg", 
sep = ""))

 jpg(file=mypath)
    mytitle = paste("my title is", names[i])
    plot(x,y, main = mytitle)
 dev.off()

编辑: 这是我用来生成1个图形的代码。

filter(name== "a")

w2=data.table(w2)
w3 = melt.data.table(data=w2, id.vars=c("Day", "Name"))

wplot = ggplot(w3, aes(x = variable, y = value)) + 
geom_point(aes(color=Day)) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) + ylim(-100, 300)

plot(wplot)

该图看起来像this。 我希望它循环显示所有名称并保存看起来像第二张照片的图表。我希望这些信息比我最初的帖子更有帮助!

谢谢

2 个答案:

答案 0 :(得分:0)

很难提供帮助,因为您只提供了很少的代码,但也许提供了plot.new():

plot.new()
jpg(file=mypath)
mytitle = paste("my title is", names[i])
plot(x,y, main = mytitle)
dev.off()

如果您制作了reproducible example,并且还告诉我们具体无法解决的问题,我们将能够为您提供更好的帮助。

答案 1 :(得分:0)

让它与此一起工作

    Names=levels(q$Name)

for(i in 1:length(Names)){

  mypath <- file.path("C:", "Users", "myname", "Documents", "Plots",paste("myplot_",
                                                                           Names[i], ".jpg", sep = ""))

  jpeg(file=mypath)

  q4 = filter(q3, q3$Name == Names[i])

  qplot = ggplot(q4, aes(x = variable, y = value)) + geom_point(aes(color=TableName)) +
    theme(axis.text.x = element_text(angle = 90, hjust = 1)) + ylim(-100, 300) + 
    labs(title = Names[i], color = "Legend") +xlab("") + ylab("Price")

  plot(qplot)
  dev.off()
}

基于此 https://www.r-bloggers.com/automatically-save-your-plots-to-a-folder/