Free Trial

ディスカッション

答えを見つけ、質問し、Alteryx の専門知識を共有してください。
解決済み

R Tool へフォントを追加する方法

Yoshiro_Fujimori
オーロラ

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())

実行ログ

スポイラ
Started running iGraphTutorial.yxmd at Tue Nov 12 15:16:39 2024
00:00:00.043 - WorkflowId - Alteryx: 0bb9e10e-2442-4af5-ba6d-c18caa40d04b
00:00:00.043 - RunId - Alteryx: d2984e08-8855-48cc-8a72-8d9ecbeefd0c
00:00:00.049 - Alteryx: This is AMP Engine; running 6 worker threads; memory limit 4040.0 MB.
00:00:00.069 - ToolId 6: C:\Users\########\Desktop\NetworkAnalysis\data\edge.yxdb|782 records were read from "C:\Users\########\Desktop\NetworkAnalysis\data\edge.yxdb"
00:00:00.069 - ToolId 5: C:\Users\########\Desktop\NetworkAnalysis\data\Node.yxdb|644 records were read from "C:\Users\########\Desktop\NetworkAnalysis\data\Node.yxdb"
00:00:00.069 - ToolId 14: 782 records were found and 0 records were not found.
00:00:00.069 - ToolId 15: 782 records were found and 0 records were not found.
00:00:00.482 - ToolId 3: R version 4.1.3 (2022-03-10) - x86_64
00:00:00.818 - ToolId 3: Loading required package: sysfonts
00:00:00.895 - ToolId 3: Loading required package: showtextdb
00:00:02.088 - ToolId 3: rgeos version: 0.5-9, (SVN revision 684)
00:00:02.088 - ToolId 3: GEOS runtime version: 3.9.1-CAPI-1.14.2
00:00:02.088 - ToolId 3: Please note that rgeos will be retired by the end of 2023,
00:00:02.088 - ToolId 3: plan transition to sf functions using GEOS at your earliest convenience.
00:00:02.088 - ToolId 3: GEOS using OverlayNG
00:00:02.088 - ToolId 3: Linking to sp version: 1.4-6
00:00:02.088 - ToolId 3: Polygon checking: TRUE
00:00:04.856 - ToolId 3: Attaching package: 'AlteryxPredictive'
00:00:04.856 - ToolId 3: The following objects are masked from 'package:AlteryxRDataX':
00:00:04.856 - ToolId 3: unserializeObject, XMSG
00:00:04.932 - ToolId 3: Attaching package: 'igraph'
00:00:04.932 - ToolId 3: The following object is masked from 'package:rgeos':
00:00:04.932 - ToolId 3: union
00:00:04.932 - ToolId 3: The following objects are masked from 'package:stats':
00:00:04.932 - ToolId 3: decompose, spectrum
00:00:04.932 - ToolId 3: The following object is masked from 'package:base':
00:00:04.932 - ToolId 3: union
00:00:04.932 - Error - ToolId 3: Error in font_install(source_han_serif()) :
00:00:04.932 - ToolId 3: the C:/Program Files/Alteryx/R-4.1.3/library/showtextdb/fonts directory does not have write permission,
00:00:04.932 - ToolId 3: unable to install fonts
00:00:04.932 - Error - ToolId 3: Execution halted
00:00:05.544 - ToolId 18: C:\Users\########\Desktop\NetworkAnalysis\data\GraphOutput.png|C:\Users\########\Desktop\NetworkAnalysis\data\GraphOutput.png
00:00:05.544 - ToolId 18: C:\Users\########\Desktop\NetworkAnalysis\data\GraphOutput.png|C:\Users\########\Desktop\NetworkAnalysis\data\GraphOutput.png|PortfolioPluginsGui.ComposerRender.PortfolioComposerRender
Finished in 00:00:05.561 with 2 errors
4件の返信4
Yoshiro_Fujimori
オーロラ

ご質問を出した直後で恐縮ですが、自己解決しました。

 

ログにインストール済の font family を出力していたのですが、その中の wgy-microhei が CJK フォントだと分かったので

ノードの属性に

 

vertex.label.family="wqy-microhei",

 

を追加したところ、無事 日本語が表示できました。

 

お騒がせいたしました!

gawa
16 - Nebula
16 - Nebula

@Yoshiro_Fujimori 

Alteryx Designerのアイコンを右クリック→管理者として実行 でDesignerを開いて実行してみてください。これにより、Designer上での操作は全て管理者権限で実行されます。

動きとして、ProgramFilesディレクトリ以下のファイル操作になるため、管理者権限での実行が求められるのですが、普通にDesingerを開くとデフォルトで非管理者権限になるため、「ファイルの書き込み権限がない」とエラーになります。

 

私の環境でも普通に起動したら、上記と全く同じエラーが出ましたが、管理者権限で実行したところ無事にフォントのインストールができました。

 

image.png

Yoshiro_Fujimori
オーロラ

@gawa 

即答ありがとうございます!

フォントのインストールは管理者権限が必要、

というのは言われてみれば納得ですが

Rのコード画面ばかり見ていて

まったく考えに至りませんでした orz

 

せっかく教えて頂いたので

好きなフォントをインストールしようかと思いましたが、

サーバーで走らせたり共有するかもしれないので

とりあえずそっとしておきます。

gawa
16 - Nebula
16 - Nebula

@Yoshiro_Fujimori R toolやPython toolでライブラリやフォントをインストールするときは「管理者として実行」です!私もよく忘れてエラーになります。

せっかく教えて頂いたので
好きなフォントをインストールしようかと思いましたが、
サーバーで走らせたり共有するかもしれないので
とりあえずそっとしておきます。

少し話はそれますが、Report MapでMeiryoフォントを使ったWFをサーバにあげたらエラーになりました。サーバが動いているWindows Server自体にMeiryoフォントがインストールされてないことが原因でした。

組織の中で、個人の端末やサーバでAlteryx関連の環境を統一するのって難しいなーと日々感じております。。。

トップのソリューション投稿者