Как создать матрицу графиков с R и ggplot2 - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь упорядочить n последовательных графиков в одну матрицу графиков.Я в первую очередь получаю графики, выполняя цикл for, но я не могу понять, как расположить их в «сюжетах».Я использовал par (mfrow = c (num.row, num.col)), но он не работает.Также multiplot (plotlist = p, cols = 4) и plot_grid (plotlist = p)

#import dataset
Survey<-read_excel('datasets/Survey_Key_and_Complete_Responses_excel.xlsx',
                      sheet = 2)

#Investigate how the dataset looks like
glimpse(Survey)#library dplyr

#change data types
Survey$brand <- as.factor(Survey$brand)
Survey$zipcode <- as.factor(Survey$zipcode)
Survey$elevel <- as.factor(Survey$elevel)
Survey$car <- as.numeric(Survey$car)

#Relation brand-variables
p = list()
for(i in 1:ncol(Survey)) {

    if ((names(Survey[i])) == "brand"){
      p[[i]]<-ggplot(Survey, aes(x = brand)) + geom_bar() +
        labs(x="Brand")

  } else if (is.numeric(Survey[[i]]) == "TRUE"){
     p[[i]]<-ggplot(Survey, aes(x = Survey[[i]], fill=brand)) +     geom_histogram() +
      labs(x=colnames(Survey[i]))

   } else {
    p[[i]]<-ggplot(Survey, aes(x = Survey[[i]], fill = brand)) +     geom_bar() +
      labs(x=colnames(Survey[i]))
  }
}

Я думаю, что графики правильно добавляются в список, но я не могу построить их в матричной форме.

1 Ответ

0 голосов
/ 19 февраля 2019

Проблема не в ваших нескольких графиках, а в том, как вы вызываете переменную в свой график.

Вы уже поместили «Survey» в ggplot в качестве первого аргумента (слот данных).В аргументе отображения (второй слот) вы вводите aes (...), и внутри него вы должны указывать имена переменных, а не сами данные.Поэтому попробуйте это:

Там, где у вас есть aes(x = Survey[[i]], fill=brand)) в двух местах, вместо этого поставьте aes(x = names(Survey[[i]], fill=brand)).

Что касается построения нескольких графиков, par(mfrow... для базовых графиков R и не может использоваться дляggplots.grid.arrange, multiplot и plot_grid должны работать, как только вы исправите ошибку в своем графике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...