Заполненный матричный график со сложенным гистограммой ggplot?

Я хочу иметь сложенную гистограмму внутри матрицы. Должен ли я пойти с ggplot?

Мои данные выглядят так:

И я хочу иметь гистограмму в каждой матрице. Не так

Мои данные выглядят так

ggplot(data = data1,
       aes(x = Var1, y = Var2, fill = value)) + 
  geom_tile()

Гистограмма с накоплением для каждой матрицы здесь

Результат примерно такой: каждая переменная будет использоваться как гистограмма внутри матрицы Результат


person mjberlin15    schedule 09.10.2018    source источник
comment
Пожалуйста, приведите воспроизводимый пример. В зависимости от того, что вы хотите создать, вы можете использовать ggplot, но вам не хватает geom_bar() для создания гистограммы (по умолчанию столбцы сложены друг на друга) и facet_wrap( ~ -вставьте свой идентификатор для создания матрицы- ). См. t-redactyl.io/blog/2016/01/ и заголовок stackoverflow.com/questions/14446160/.   -  person alex_555    schedule 09.10.2018
comment
Привет, я только что обновил результат, который хочу получить.   -  person mjberlin15    schedule 09.10.2018
comment
Кроме того, чтобы помочь нам лучше ответить на ваш вопрос, включите ваши данные в структуру, которую мы можем воспроизвести (см. stackoverflow.com/questions/5963269/) и внедрить ваши изображения вместо включения их в виде ссылок.   -  person Ben G    schedule 10.10.2018
comment
Привет Бен, спасибо за информацию. В следующий раз я сделаю это, и мне все еще нужно больше репутации, чтобы встроить изображение. Спасибо   -  person mjberlin15    schedule 10.10.2018


Ответы (2)


Вот мое решение. Я полагаю, это то, что вы ищете.

library(ggplot2)

# data
x <- data.frame(Var1=rep(c(rep("A",3), rep("B",2), "C"),3),
            Var2=rep(c("A","B","C","B","C","C"),3),
            variable=rep(c("part1","part2","part3"), each=6),
            value=c(40.6,34.7,42.6,32.2,43.7,45.1,38.8,30.8,41.7,
                    29.4,40.4,42.2,20.6,34.5,15.7,38.4,15.9,12.7))

# plot
ggplot(x, aes(x=1,y=value, fill=variable))+
  geom_bar(stat="identity", width=1, position="stack")+
  facet_grid(Var1~Var2)+

# remove unwanted information
  theme_classic()+
  theme(axis.title=element_blank(), 
        axis.line=element_blank(),
        axis.ticks=element_blank(), 
        axis.text=element_blank(),
        plot.background = element_blank(), 
        plot.title=element_blank(),
        strip.background = element_blank())
person alex_555    schedule 10.10.2018

Из вашего вопроса немного сложно понять, что именно вы пытаетесь сделать, но вот простой сценарий, который может помочь вам начать работу. Я догадался, что вы хотите разбить матрицу по переменной? Если нет, отрегулируйте соответственно.

p<-ggplot(data = data, aes(x=Var1, y=Var2, fill=value)) + geom_bar()
p + facet_grid(. ~ variable)
person Jo Harris    schedule 09.10.2018