Вопрос или проблема
Я пытаюсь убрать текст по оси Y на некоторых графиках с барограммами. Я обновил параметры в ‘scales’ и ‘shared_axis_labels’ функции ‘geom_node_plot’, но безуспешно. Ниже приведён код для иллюстрации проблемы и график с метками, которые я хочу удалить.
library(ggparty)
library(tidyverse)
library(partykit)
ct <- ctree(Species ~ ., data = iris)
panel_prop <- function(count, panel) {
count / tapply(count, panel, sum)[as.character(panel)]
}
ggparty(ct) +
geom_edge() +
geom_edge_label(colour = "gray9", size = 3) +
geom_node_plot(scales = "fixed",
shared_axis_labels = FALSE,
gglist = list( aes(
y = Species,
x = after_stat(panel_prop(count, PANEL))
,fill = Species
,label = after_stat(scales::percent(panel_prop(count, PANEL), accuracy = 1))
),
geom_bar(),
geom_text(stat = "count", hjust = 0, size = 3),
coord_cartesian(clip = "off"),
scale_x_continuous(labels = scales::percent_format(accuracy = 1),
expand = expansion(mult = c(.05, .25))),
theme(axis.text.x = element_text(size = 5)),
xlab(""),
ylab(""))) +
geom_node_label(aes(),
line_list = list(aes(label = paste("Узел", id)),
aes(label = splitvar),
aes(label = "")
), line_gpar = list(list(size = 8,
col = "black"#, fontface = "bold"
), list(size = 6), list(size = 8)
), ids = "inner")
Ответ или решение
Чтобы удалить текст по оси Y в графиках, создаваемых с использованием пакета ggparty, вам следует настроить параметры в функции geom_node_plot
. На основе вашего кода вы уже пробовали редактировать параметры в shared_axis_labels
и scales
, но, возможно, не все моменты учтены.
Для того чтобы удалить текстовое обозначение по оси Y, вы можете использовать функцию theme()
и задать значения для axis.text.y
и axis.title.y
как element_blank()
. Вот как можно модифицировать ваш код:
library(ggparty)
library(tidyverse)
library(partykit)
ct <- ctree(Species ~ ., data = iris)
panel_prop <- function(count, panel) {
count / tapply(count, panel, sum)[as.character(panel)]
}
ggparty(ct) +
geom_edge() +
geom_edge_label(colour = "gray9", size = 3) +
geom_node_plot(scales = "fixed",
shared_axis_labels = FALSE,
gglist = list(aes(
y = Species,
x = after_stat(panel_prop(count, PANEL)),
fill = Species,
label = after_stat(scales::percent(panel_prop(count, PANEL), accuracy = 1))
),
geom_bar(),
geom_text(stat = "count", hjust = 0, size = 3),
coord_cartesian(clip = "off"),
scale_x_continuous(labels = scales::percent_format(accuracy = 1,
expand = expansion(mult = c(.05, .25))),
theme(axis.text.x = element_text(size = 5))),
xlab(""),
ylab(""))) +
geom_node_label(aes(),
line_list = list(aes(label = paste("Node", id)),
aes(label = splitvar),
aes(label = "")
), line_gpar = list(list(size = 8,
col = "black"),
list(size = 6),
list(size = 8)
), ids = "inner") +
theme(axis.text.y = element_blank(), # Удаляет текстовые метки по оси Y
axis.title.y = element_blank()) # Удаляет название оси Y
В этом коде добавлены две строки, которые используют theme()
для удаления текста по оси Y. Эти изменения помогут вам полностью убрать метки и название оси Y из вашего графика.
Если у вас возникнут дополнительные вопросы или нужна дальнейшая помощь, не стесняйтесь обращаться!