SAS SGPLOT - создать отдельный компонент для одного и того же сюжета

Я хотел бы создать сюжет как прилагается. Ось Y имеет шкалу от 1 до 100 как непрерывное значение (с разрывом от 21 до 49), а ось X имеет категориальную шкалу с двумя значениями.

Мне нужно выделить 70% площади графика на нижний компонент (т.е. там, где нанесены значения от 0 до 20), а затем 30% площади графика на верхний компонент (т.е. где нанесены значения от 50 до 100).

Есть ли способ построить 3 разных компонента, то есть 0-20, разрыв для 21-49, а затем от 50 до 100

1 ответ

Вы можете собрать их вместе, используя gridExtra. И может настроить масштабирование с помощью coord_cartesian() или спецификации высоты в grid.arrange()

      library(tidyverse)
library(gridExtra)

data <- bind_cols(category = rep(c("Category1", "Category2"), 5),
          value = c(sample(0:20,6), sample(50:100,4)),
          group = c(1,1,2,2,3,3,4,4,5,5))
topgraph <- data %>% 
    ggplot(aes(x = category, y = value, group = group)) +
    geom_line() +
    labs(x = "") +
    theme(axis.text.x = element_blank())+
    coord_cartesian(ylim = c(50,100))


lowergraph <- data %>% 
    ggplot(aes(x = category, y = value, group = group)) +
    geom_line() +
    coord_cartesian(ylim = c(0,20))




grid.arrange(topgraph, lowergraph, heights = c(.3,.7))
Другие вопросы по тегам