前提・実現したいこと
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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/01 11:26