R Tool でグラフを生成しようとしております。(後続の Render Tool で .png ファイルに出力)
入力データに日本語が含まれるため、日本語を表示したいのですが、文字化けします。
ネットワークグラフのノードのラベルの日本語が文字化けするので、
ネットで R の日本語文字化け対策のページを参考にして
showtextdb ライブラリの font_install() で日本語をサポートするフォントをインストールしようとしたところ
以下のようなエラーで異常終了します。
Error in font_install(source_han_serif())
the C:/Program Files/Alteryx/R-4.1.3/library/showtextdb/fonts directory does not have write permission,
該当ディレクトリのRead Only属性を変更してみましたが、同じエラーとなりました。
showtextdb はもともとRパッケージに入っており、source_han_serif フォントもその中に入っているようなので
特に外部からフォントを持ってきてはおりません。
このやり方にこだわっている訳ではなく、とりあえず日本語が表示できれば良いのですが、何か対処法がありましたらご教示頂ければ幸甚です。
Rコード
library(igraph)
font_install(source_han_serif())
edgeData = read.Alteryx("Edge", mode = 'data.frame')
nodeData = read.Alteryx("Node", mode = 'data.frame')
net <- graph_from_data_frame(edgeData, directed = TRUE, vertices = nodeData)
AlteryxMessage(font_families(), msg.consts$ERROR, priority.consts$HIGH)
AlteryxGraph(1, width=2400, height=3000, res=300)
l <- layout_with_fr(net)
plot(net,
vertex.label=V(net)$label,
vertex.label.cex=.7,
vertex.label.dist=.25,
vertex.label.color="black",
vertex.size=2.5,
vertex.frame.color="#555555",
edge.arrow.size=.4,
edge.color="orange",
layout=l,
)
invisible(dev.off())
実行ログ
解決済! 解決策の投稿を見る。
ご質問を出した直後で恐縮ですが、自己解決しました。
ログにインストール済の font family を出力していたのですが、その中の wgy-microhei が CJK フォントだと分かったので
ノードの属性に
vertex.label.family="wqy-microhei",
を追加したところ、無事 日本語が表示できました。
お騒がせいたしました!
Alteryx Designerのアイコンを右クリック→管理者として実行 でDesignerを開いて実行してみてください。これにより、Designer上での操作は全て管理者権限で実行されます。
動きとして、ProgramFilesディレクトリ以下のファイル操作になるため、管理者権限での実行が求められるのですが、普通にDesingerを開くとデフォルトで非管理者権限になるため、「ファイルの書き込み権限がない」とエラーになります。
私の環境でも普通に起動したら、上記と全く同じエラーが出ましたが、管理者権限で実行したところ無事にフォントのインストールができました。
即答ありがとうございます!
フォントのインストールは管理者権限が必要、
というのは言われてみれば納得ですが
Rのコード画面ばかり見ていて
まったく考えに至りませんでした orz
せっかく教えて頂いたので
好きなフォントをインストールしようかと思いましたが、
サーバーで走らせたり共有するかもしれないので
とりあえずそっとしておきます。
@Yoshiro_Fujimori R toolやPython toolでライブラリやフォントをインストールするときは「管理者として実行」です!私もよく忘れてエラーになります。
せっかく教えて頂いたので
好きなフォントをインストールしようかと思いましたが、
サーバーで走らせたり共有するかもしれないので
とりあえずそっとしておきます。
少し話はそれますが、Report MapでMeiryoフォントを使ったWFをサーバにあげたらエラーになりました。サーバが動いているWindows Server自体にMeiryoフォントがインストールされてないことが原因でした。
組織の中で、個人の端末やサーバでAlteryx関連の環境を統一するのって難しいなーと日々感じております。。。