1

我有几个通过循环生成的动物园对象。我想在一个面板中绘制所有对象。我想这可以通过首先将动物园对象合并到类似矩阵的动物园对象和供应plot.type = "multiple"screens = ncol(merged-zoo-object)参数来完成plot.zoo(),但我不知道如何合并。

library(zoo)
for (i in 1:3) {
value <- rnorm(n = 12, mean = i)
index <- seq(as.Date("2000/1/1"), by = "month", length.out = 12)
ts <- zoo(x = value, order.by = index)
plot.zoo(ts)
}

更新

我已经设法创建了情节(已回答),我想用blogdown创建一篇博文。

4

2 回答 2

1

您在blogdown中遇到的问题是您使用的是绝对本地路径/home/rsl/r-plots/sample.png。一般来说,使用绝对路径是个坏主意,因为它们不可移植。在这种特定情况下,当您将帖子发布到 Web 服务器时, 的含义/home/rsl/r-plots/sample.png会发生变化。它表示您网站根目录/home/rsl/r-plots/sample.png下的文件。例如,如果您的网站是,则文件路径表示,这绝对不是您的实际意思。Web 服务器对您计算机上的本地文件一无所知,当然也无法在本地磁盘上找到任何文件,因此该图不会加载到网页上。http://example.comhttp://example.com/home/rsl/r-plots/sample.png

简而言之,删除这个:

ggsave(filename = "sample.png", path = "~/r-plots")

当您使用knitr或任何基于knitr的软件包(例如rmarkdownbookdownblogdown )创作文档时,无需使用ggsave()或 R 图形设备手动保存绘图。R地块将在幕后自动保存。

于 2017-10-05T18:22:53.370 回答
0

这种工作,但代码本来可以更干净。

require(zoo)
require(ggfortify)

merged.zoo <- zoo()
for (i in 1:3) {
  value <- rnorm(n = 12, mean = i)
  index <- seq(as.Date("2000/1/1"), by = "month", length.out = 12)
  ts <- zoo(x = value, order.by = index)
  merged.zoo <- merge.zoo(merged.zoo, ts)
}

autoplot.zoo(object = merged.zoo, geom = "line")
ggsave(filename = "sample.png", path = "~/r-plots")

在此处输入图像描述

我现在创建一个新帖子,blogdown::new_post(title = "title")并将以下文本添加到*title.rmdnew_post命令创建的文件中。

---
title: title
author: ~
date: '2017-10-05'
slug: title
categories: []
tags: []
---

![I want to see this plot](/home/rsl/r-plots/sample.png)

我希望在执行时看到名为标题serve_site()的帖子中的情节,然后是build_site()默认设置。但是情节没有加载。

于 2017-10-04T16:14:57.973 回答