Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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!

kazutan
ただの残念なぞうさんです。同名のTwitterアカウントでほそぼそと。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした