Гистограмма с накоплением для одной количественной и одной категориальной переменных

У меня есть следующий фрейм данных:

core_depth    formation_name
5668           name5
5739           name2
5791           name7
5841           name4
5856           name1
5876           name3
5882           name6

Столбец core_depth представляет собой глубину породы, а имя_формирования - это имя, данное геологами горной породе. Я скремблировал имена, чтобы защитить данные, но идея состоит в том, что это уникальные имена, как в векторе символов в R.

Мне нужно нарисовать столбчатую диаграмму с накоплением в один столбец, где важен только вертикальный масштаб. Он начинается с первой core_depth (5668) вверху и заканчивается глубиной ядра (5882) внизу. Каждый стек на гистограмме показывает «пропорцию» глубины, соответствующую имени. Легенда мне не нужна, поскольку сложенная полоса сама по себе служит маркером глубины и формации для других графиков разброса. Я могу использовать либо ggplot2, либо plotly. Посоветуйте, пожалуйста, а лучше дайте образец кода.


person Bharat    schedule 13.01.2017    source источник


Ответы (1)


Помогает ли это:

df <- read.table(text = "core_depth    formation_name
                 5668           name5
                 5739           name2
                 5791           name7
                 5841           name4
                 5856           name1
                 5876           name3
                 5882           name6", stringsAsFactors = FALSE, header = TRUE)

library(dplyr)
library(ggplot2)

df <- df %>% 
  arrange(core_depth)

df$lag <- lag(df$core_depth)

df$abs <- df$core_depth - df$lag
df$abs[1] <- 0

ggplot(df) +
  geom_bar(aes(x = rep(0, nrow(df)),
               y = abs,
               fill = formation_name),
           stat = "identity")

введите здесь описание изображения

person Mist    schedule 13.01.2017
comment
Это почти то, что мне нужно, но я бы хотел, чтобы шкала оси Y начиналась сверху с первого значения глубины ядра, то есть 5668, а затем спускалась вниз, пока не будет достигнута последняя глубина ядра, то есть 5882. Меня действительно не волнует ось X, которую можно убрать или спрятать. В остальном это хорошо. - person Bharat; 13.01.2017