6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DiagrammeR入門 画像ファイルなどへの出力

Last updated at Posted at 2016-02-13

export diagram

前振りと参考資料

以下の記事の続きです:
- DiagrammeR入門 NDFとEDF
- DiagrammeR入門 nodeの属性まとめ

DiagrammeRで作成したダイアグラムはRStudioのViewerに表示されたり、またR Markdownにそのまま埋め込むことができます。しかし時には画像ファイル等で出力したいと思うこともあるでしょう。今回はその方法を説明します。

前準備

今回は以下の例で説明します。また、方法その2は執筆時現在で開発版のみでの対応のようですので、開発版を持ってきてインストールしておきます。

devtools::install_github("rich-iannone/DiagrammeR")
library(DiagrammeR)

g <-create_graph(
  nodes_df = data.frame(nodes = c("kosaki", "chitoge","tsugumi"))
)

方法その1: RStudioのViewerからエクスポート

一旦RStudioのViewerに出力して、その後にRStudioの機能でExportする方法です。まずはレンダリングします:

render_graph(g)

これでRStudioのViewerに表示されるので、ViewerにあるExportボタンをクリックします

DgmR_expt1.png

「Save as Image...」でいけそうですが環境によってはうまくいかない場合があるようです。なので「Copy to Clipboard...」を選択し、画像編集ソフトなどに貼り付けて適宜編集・保存してください。

また、「Save as Web Page...」を使うと、このダイアグラム単独が表示されるhtmlファイル(要はウィジェット)が出力されます。そのままWebページに埋め込みたい場合は、この方法も検討してみてください。

一つだけ出力するならこれでもいいのですが、複数実行する場合は正直面倒です。あまりおすすめしません。

方法その2: export_graph()の利用

現時点で一番おすすめです。png形式やsvg形式、pdf形式とps形式に対応しています。

この関数を利用するためにはDiagrammeRsvgパッケージが必要です。またUbuntu環境の場合は、Ubuntuのリポジトリからrsvgライブラリを事前にインストールする必要があります。

ではまず必要な物を準備します:

devtools::install_github("rich-iannone/DiagrammeRsvg")
library(DiagrammeRsvg)

これで準備はできたので、以下のようにコマンドを実行します:

export_graph(g, file_name = "g.png")

g.png

第一引数にDiagrammeR::create_graph()で作成したグラフオブジェクトを指定し、file_name=で出力するファイル名を拡張子付きで指定してください。ファイル形式はこの拡張子で自動判別してくれます。

この方法であればコードで出力できますので制御しやすく、ログも残ります。そして何よりも速いです。ただしまだ開発版にしか組み込まれていない(はず)なので、その最新版を取得して実行してください。

Enjoy!

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?