Rで解析:WordやPowerPointで編集可能なグラフを出力「mschart」パッケージ

Rの解析に役に立つ記事

WordやPowerPointで編集可能なグラフを出力できるパッケージの紹介です。棒グラフ、折れ線グラフ、散布図、面グラフの作成が可能です。グラフ内での日本語も文字化けせずに利用可能です。

パッケージバージョンは0.3.1。WordやPowerPointはOffice365。実行コマンドはwindows 11のR version 4.1.2で確認しています。

スポンサーリンク
スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("mschart")

実行コマンド

詳細はコマンド、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("mschart")

###データ例の作成#####
n <- 30
TestData <- data.frame("ID" = rep(c("KA", "RA", "DA"), each = 3, length = n),
                          "Group" = rep_len(c("Group1", "Group2", "Group3"), n),
                          "Point" = rep(1:10, length = n),
                          "Value" = rnorm(n))
########

#作成可能な4種のグラフ:ms_XXXXコマンド
#作成したグラフはprintコマンド,preview = TRUEで表示可能
#Group分割:groupオプション:NULLで分割なし
#棒グラフ:ms_barchartコマンド
TestBar <- ms_barchart(data = TestData, x = "ID", y = "Value", group = "Group")
print(TestBar, preview = TRUE)
#NoGTestBar <- ms_barchart(data = TestData, x = "ID", y = "Value", group = NULL)
#print(NoGTestBar, preview = TRUE)
#折れ線グラフ:ms_linechartコマンド
TestLine <- ms_linechart(data = TestData, x = "Point", y = "Value", group = "Group")
print(TestLine, preview = TRUE)
#散布図:ms_scatterchartコマンド
TestScatter <- ms_scatterchart(data = TestData, x = "Point", y = "Value", group = "Group")
print(TestScatter, preview = TRUE)
#面グラフ:ms_areachartコマンド
TestAreachart <- ms_areachart(data = TestData, x = "Point", y = "Value", group = "Group")
print(TestAreachart, preview = TRUE)

#グラフの種類を設定:chart_settingsコマンド
#種類を設定:groupingオプション;stacked:積み上げ,percentStacked:100%積み上げ,
#clustered:集合;棒グラフと散布図,standard:標準が指定可能
#グラフの重なりを調整:overlapコマンド;-100から100で指定可能
SetTestBar1 <- chart_settings(TestBar, grouping = "stacked", overlap = 50)
print(SetTestBar1, preview = TRUE)

#X,Y軸の書式設定:chart_ax_x,chart_ax_yコマンド
#両コマンドオプションが共通
#ラベルの位置を指定:crossesオプション;min,max,autoZeroが指定可能
#目盛,補助目盛の位置を指定:major_tick_mark,minor_tick_markオプション
#cross,in,none,outが指定可能
#ラベルの回転:rotationオプション;-360から360で指定可能
#数値書式設定:num_fmtオプション
SetTestBar2 <- chart_ax_x(SetTestBar1, crosses = "min", minor_tick_mark = "cross",
                             rotation = -45)
SetTestBar3 <- chart_ax_y(SetTestBar2, crosses = "min", minor_tick_mark = "cross",
                             num_fmt = "0.0", rotation = -45)
print(SetTestBar3, preview = TRUE)

#グラフ,X,Y軸のタイトルを設定:chart_labelsコマンド
#日本語利用もOK
SetTestBar3$theme$main_title$font.family <- "MS UI Gothic"
SetTestBar3$theme$axis_title_x$font.family <- "MS UI Gothic"
SetTestBar3$theme$axis_title_y$font.family <- "MS UI Gothic"
SetTestBar4 <- chart_labels(SetTestBar3, title = "Title", 
                               xlab = "x title", ylab = "y title")
print(SetTestBar4, preview = TRUE)

#塗り色を指定:chart_data_fillコマンド
#色を設定:valueオプション;単色またはラベル名で指定
SetTestBar5 <- chart_data_fill(SetTestBar4,
                                  values = c(Group1 = "#FDE4C0",
                                             Group2 = "#FFF7F3",
                                             Group3 = "red"))
print(SetTestBar5, preview = TRUE)

#枠線色を指定:chart_data_strokeコマンド
#オプションはchart_data_fillコマンドと共通
SetTestBar6 <- chart_data_stroke(SetTestBar5, values = "yellow")
print(SetTestBar6, preview = TRUE)

#参考:WordまたはPowerPointに埋め込み保存する方法
#install.packages("officer")
library("officer")
#Word:body_add_chartコマンド
doc <- read_docx()
doc <- body_add_chart(doc, chart = SetTestBar6, style = "centered")
print(doc, target = "Test.docx")
#PowerPoint:ph_with_chartコマンド
doc <- read_pptx()
doc <- add_slide(doc, layout = "Title and Content", master = "Office Theme")
doc <- ph_with_chart(doc, chart = SetTestBar6)
print(doc, target = "Test.pptx")

出力例

・グラフを作成:ms_XXXXコマンド

・ms_barchartコマンドに全体裁コマンドを適応
『SetTestBar6』を出力

・参考:Wordへ出力後に編集


少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました