質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ggplot2

ggplot2は、統計解析向けのプログラミング言語及びその開発実行環境であるR言語のグラフィック作成用のライブラリです。

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

解決済

1回答

1850閲覧

partykitを使用した回帰木(決定木)の枝の設定方法(垂直にしたい)

Kkeguri

総合スコア6

ggplot2

ggplot2は、統計解析向けのプログラミング言語及びその開発実行環境であるR言語のグラフィック作成用のライブラリです。

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2020/08/25 06:07

前提・実現したいこと

https://www.trifields.jp/visualization-of-decision-tree-using-ggparty-in-r-3499
上記のURLのURLを参考に下記のソースコードを実行すると、
枝が斜めになっており、一部ラベルなどと重なる箇所が出てきてしまいます。
そのため、下記URLのように水平・垂直の枝にしたいです。
https://www1.doshisha.ac.jp/~mjin/R/Chap_19/19.html

発生している問題・エラーメッセージ

該当のソースコード

R

1library(rpart) 2library(partykit) 3library(ggplot2) 4library(ggparty) 5 6df <- read.csv("test.csv",header=T) 7 8head(df) 9 10rt <- rpart(kotae ~ A + B + C + D + E + F + G , data = df, control=rpart.control(minsplit=5, cp=0.007) ) # + H + I 11 12prt <- as.party(rt) 13g <- ggparty(prt, terminal_space = 0.45) #グラフ部分が全体の何割を占めるか(下から) 14g <- g + geom_edge(size = 2) #分岐線の太さ 15g <- g + geom_edge_label(colour = "black", size = 4.5)#分岐の文字の大きさ 16g <- g + geom_node_plot( 17 gglist = list(geom_boxplot(aes(x="",y=displacement)),theme_bw(base_size =13)), #縦軸の文字の大きさ 18 scales = "fixed", 19 id = "terminal", 20 shared_axis_labels = TRUE, 21 shared_legend = TRUE, 22 legend_separator = TRUE, 23 ) 24 25g <- g + geom_node_label( 26 aes(col = splitvar), 27 line_list = list(aes(label = paste("Node", id)), 28 aes(label = splitvar)), 29 line_gpar = list(list( 30 size = 8, #Nodeの文字の大きさ 31 col = "black", 32 fontface = "bold" 33 ), 34 list(size = 14)), #変数Aとかの文字の大きさ 35 ids = "inner" 36 ) 37 38g <- g + geom_node_label( 39 aes(label = paste0("Node ", id, ", N = ", nodesize)), 40 fontface = "bold", 41 ids = "terminal", 42 size = 3, #グラフの上のタイトルの大きさ 43 nudge_y = 0.01 #グラフとタイトルの幅 44 ) 45 46g <- g + theme(legend.position = "none") 47plot(g) 48

試したこと

最後の出力箇所で下記を試しておりますが、うまくいきません。
plot(rt)
→ダメ

text(rt, use.n=TRUE, cex=0.5)
→ダメ

plot(as.party(rt))
→ダメ

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

geom_node_plotに枝の角度を変えるオプションはないです。
https://www.rdocumentation.org/packages/ggparty/versions/1.0.0/topics/geom_node_plot

類似の他の関数を使うしかないと思います。
https://www.marketechlabo.com/r-decision-tree/

投稿2020/09/01 09:21

shimiken

総合スコア368

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kkeguri

2020/09/01 11:26

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問