Когда я построил дерево решений из пакета ctree()
из party
, шрифт был слишком большим, и поле тоже было слишком большим. Они перекрывают другие узлы.
Есть ли способ настроить вывод из plot()
, чтобы поле и шрифт были меньше?
Когда я построил дерево решений из пакета ctree()
из party
, шрифт был слишком большим, и поле тоже было слишком большим. Они перекрывают другие узлы.
Есть ли способ настроить вывод из plot()
, чтобы поле и шрифт были меньше?
Короткий ответ кажется, нет, вы не можете изменить размер шрифта, но есть и другие хорошие варианты.
Я знаю три возможных решения. Во-первых, вы можете изменить другие параметры на графике, чтобы сделать его более компактным. Во-вторых, вы можете записать его в графический файл и просмотреть этот файл. В-третьих, вы можете использовать альтернативную реализацию ctree() в пакете partykit, который является более новым пакетом некоторыми из тех же авторов.
library(party)
airq <- subset(airquality, !is.na(Ozone))
airct <- ctree(Ozone ~ ., data = airq,
controls = ctree_control(maxsurrogate = 3))
plot(airct) #default plot, some crowding with N hidden on leafs
# simpler version of plot
plot(airct, type="simple", # no terminal plots
inner_panel=node_inner(airct,
abbreviate = TRUE, # short variable names
pval = FALSE, # no p-values
id = FALSE), # no id of node
terminal_panel=node_terminal(airct,
abbreviate = TRUE,
digits = 1, # few digits on numbers
fill = c("white"), # make box white not grey
id = FALSE)
)
Это несколько лучше, и можно было бы улучшить его дальше. Чтобы выяснить эти детали, я изначально сделал class(airct)
, который вернул "BinaryTree". Вооружившись этой информацией, я начал читать ?plot.BinaryTree
Второе простое решение - записать график в файл, а затем просмотреть файл. Возможно, вам придется играть с настройками, чтобы найти наилучшие результаты.
png("airct.png", res=80, height=800, width=1600)
plot(airct)
dev.off()
Наконец, вы можете использовать более новую и еще не завершенную повторную реализацию пакета партии некоторыми из тех же авторов. На этом этапе (декабрь 2012) единственная функция, которую они переделали, - ctree()
. Эта версия позволяет изменять размер шрифта.
library(partykit)
airct <- ctree(Ozone ~ ., data = airq)
class(airct) # different class from before
# "constparty" "party"
plot(airct, gp = gpar(fontsize = 6), # font size changed to 6
inner_panel=node_inner,
ip_args=list(
abbreviate = TRUE,
id = FALSE)
)
Здесь я оставил листы в настройках по умолчанию, потому что я откровенно не понял, как заставить его работать так, как я хочу. Я подозреваю, что это связано с тем, что пакет неполный (по состоянию на декабрь 2012 года). Вы можете прочитать о методе сюжета, начиная с ?plot.party