Удалить текст y из коробочного графика при генерации графика с пакетом ggparty.

Вопрос или проблема

Я пытаюсь убрать текст по оси 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 из вашего графика.

Если у вас возникнут дополнительные вопросы или нужна дальнейшая помощь, не стесняйтесь обращаться!

Оцените материал
Добавить комментарий

Капча загружается...