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

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

#&#20316;&#25104;&#21487;&#33021;&#12394;4&#31278;&#12398;&#12464;&#12521;&#12501;:ms_XXXX&#12467;&#12510;&#12531;&#12489;
#&#20316;&#25104;&#12375;&#12383;&#12464;&#12521;&#12501;&#12399;print&#12467;&#12510;&#12531;&#12489;,preview = TRUE&#12391;&#34920;&#31034;&#21487;&#33021;
#Group&#20998;&#21106;:group&#12458;&#12503;&#12471;&#12519;&#12531;:NULL&#12391;&#20998;&#21106;&#12394;&#12375;
#&#26834;&#12464;&#12521;&#12501;:ms_barchart&#12467;&#12510;&#12531;&#12489;
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)
#&#25240;&#12428;&#32218;&#12464;&#12521;&#12501;:ms_linechart&#12467;&#12510;&#12531;&#12489;
TestLine <- ms_linechart(data = TestData, x = "Point", y = "Value", group = "Group")
print(TestLine, preview = TRUE)
#&#25955;&#24067;&#22259;:ms_scatterchart&#12467;&#12510;&#12531;&#12489;
TestScatter <- ms_scatterchart(data = TestData, x = "Point", y = "Value", group = "Group")
print(TestScatter, preview = TRUE)
#&#38754;&#12464;&#12521;&#12501;:ms_areachart&#12467;&#12510;&#12531;&#12489;
TestAreachart <- ms_areachart(data = TestData, x = "Point", y = "Value", group = "Group")
print(TestAreachart, preview = TRUE)

#&#12464;&#12521;&#12501;&#12398;&#31278;&#39006;&#12434;&#35373;&#23450;:chart_settings&#12467;&#12510;&#12531;&#12489;
#&#31278;&#39006;&#12434;&#35373;&#23450;:grouping&#12458;&#12503;&#12471;&#12519;&#12531;;stacked:&#31309;&#12415;&#19978;&#12370;,percentStacked:100%&#31309;&#12415;&#19978;&#12370;,
#clustered:&#38598;&#21512;;&#26834;&#12464;&#12521;&#12501;&#12392;&#25955;&#24067;&#22259;,standard:&#27161;&#28310;&#12364;&#25351;&#23450;&#21487;&#33021;
#&#12464;&#12521;&#12501;&#12398;&#37325;&#12394;&#12426;&#12434;&#35519;&#25972;:overlap&#12467;&#12510;&#12531;&#12489;;-100&#12363;&#12425;100&#12391;&#25351;&#23450;&#21487;&#33021;
SetTestBar1 <- chart_settings(TestBar, grouping = "stacked", overlap = 50)
print(SetTestBar1, preview = TRUE)

#X,Y&#36600;&#12398;&#26360;&#24335;&#35373;&#23450;:chart_ax_x,chart_ax_y&#12467;&#12510;&#12531;&#12489;
#&#20001;&#12467;&#12510;&#12531;&#12489;&#12458;&#12503;&#12471;&#12519;&#12531;&#12364;&#20849;&#36890;
#&#12521;&#12505;&#12523;&#12398;&#20301;&#32622;&#12434;&#25351;&#23450;:crosses&#12458;&#12503;&#12471;&#12519;&#12531;;min,max,autoZero&#12364;&#25351;&#23450;&#21487;&#33021;
#&#30446;&#30427;,&#35036;&#21161;&#30446;&#30427;&#12398;&#20301;&#32622;&#12434;&#25351;&#23450;:major_tick_mark,minor_tick_mark&#12458;&#12503;&#12471;&#12519;&#12531;
#cross,in,none,out&#12364;&#25351;&#23450;&#21487;&#33021;
#&#12521;&#12505;&#12523;&#12398;&#22238;&#36578;:rotation&#12458;&#12503;&#12471;&#12519;&#12531;;-360&#12363;&#12425;360&#12391;&#25351;&#23450;&#21487;&#33021;
#&#25968;&#20516;&#26360;&#24335;&#35373;&#23450;:num_fmt&#12458;&#12503;&#12471;&#12519;&#12531;
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)

#&#12464;&#12521;&#12501;,X,Y&#36600;&#12398;&#12479;&#12452;&#12488;&#12523;&#12434;&#35373;&#23450;:chart_labels&#12467;&#12510;&#12531;&#12489;
#&#26085;&#26412;&#35486;&#21033;&#29992;&#12418;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)

#&#22615;&#12426;&#33394;&#12434;&#25351;&#23450;:chart_data_fill&#12467;&#12510;&#12531;&#12489;
#&#33394;&#12434;&#35373;&#23450;:value&#12458;&#12503;&#12471;&#12519;&#12531;;&#21336;&#33394;&#12414;&#12383;&#12399;&#12521;&#12505;&#12523;&#21517;&#12391;&#25351;&#23450;
SetTestBar5 <- chart_data_fill(SetTestBar4,
                                  values = c(Group1 = "#FDE4C0",
                                             Group2 = "#FFF7F3",
                                             Group3 = "red"))
print(SetTestBar5, preview = TRUE)

#&#26528;&#32218;&#33394;&#12434;&#25351;&#23450;:chart_data_stroke&#12467;&#12510;&#12531;&#12489;
#&#12458;&#12503;&#12471;&#12519;&#12531;&#12399;chart_data_fill&#12467;&#12510;&#12531;&#12489;&#12392;&#20849;&#36890;
SetTestBar6 <- chart_data_stroke(SetTestBar5, values = "yellow")
print(SetTestBar6, preview = TRUE)

#&#21442;&#32771;:Word&#12414;&#12383;&#12399;PowerPoint&#12395;&#22475;&#12417;&#36796;&#12415;&#20445;&#23384;&#12377;&#12427;&#26041;&#27861;
#install.packages("officer")
library("officer")
#Word:body_add_chart&#12467;&#12510;&#12531;&#12489;
doc <- read_docx()
doc <- body_add_chart(doc, chart = SetTestBar6, style = "centered")
print(doc, target = "Test.docx")
#PowerPoint:ph_with_chart&#12467;&#12510;&#12531;&#12489;
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へ出力後に編集


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

Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.
タイトルとURLをコピーしました