Хобрук: Ваш путь к мастерству в программировании

Можно ли разместить пространство между стеками в столбце с накоплением ggplot2?

Я взял этот пример из здесь:

DF <- read.table(text="Rank F1     F2     F3
1    500    250    50
2    400    100    30
3    300    155    100
4    200    90     10", header=TRUE)

library(reshape2)
DF1 <- melt(DF, id.var="Rank")

library(ggplot2)
ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + 
geom_bar(stat = "identity")

Можно ли создать столбец с накоплением, такой как следующий график, с помощью ggplot2? Я не хочу различать стеки по разным цветам.

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

EDIT: на основе комментариев Паскаля,

ggplot(DF1, aes(x = Rank, y = value)) + 
geom_bar(stat = "identity",lwd=2, color="white")

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

У меня все еще есть белые рамки для полос.

01.05.2015

  • В geom_bar можно добавить другие аргументы, например color и lwd. 01.05.2015
  • Цвет не проблема, пространство между стопками не может быть решено с помощью lwd 01.05.2015
  • Ты хоть пробовал? 01.05.2015
  • Могу выложить результаты. Может быть, я что-то упускаю. 01.05.2015
  • Теперь у вас есть место. 01.05.2015
  • Все еще есть белые границы для левой и правой сторон столбцов, я просто хочу убедиться, что это лучшее, что можно получить от ggplot2. 01.05.2015
  • Не уверен, что вы тоже собираетесь использовать закругленные углы, но кто-то спросил на прошлой неделе, и кажется, что ответ не так прост. stackoverflow.com/questions/29846076 / 01.05.2015
  • Спасибо LJW, я даже не заметил скругления углов! 01.05.2015

Ответы:


1

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

library(ggplot2)
p <- ggplot(DF1, aes(x = Rank, y = value, group = variable))
p <- p + geom_bar(stat = "identity", position = "stack", lwd = 1.5,
                  width = 0.5, colour = "white", fill = "black")        
p <- p + theme_classic()
p <- p + theme(axis.text.x = element_text(angle = 90, vjust = 0.5))
p

Это производит:

Если вы хотите сохранить серый фон, вы можете точно узнать, какой это оттенок серого, и использовать этот цвет для линии, удаляя фоновые сетки (это неправильный оттенок).

p <- ggplot(DF1, aes(x = Rank, y = value))
p <- p + geom_bar(stat = "identity", position = "stack", lwd = 1.5,
                  width = 0.5, colour = "grey", fill = "black")        
p <- p + theme(panel.grid = element_blank())
p

Проблема с этим решением заключается в том, что очень маленькие группы не будут видны (например, когда Ранг = 4, переменная F3 = 10; это небольшое значение полностью перекрывается контуром белой полосы).

Ваши образцы данных:

DF1 <- structure(list(Rank = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 
3L, 4L), variable = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 
3L, 3L, 3L, 3L), .Label = c("F1", "F2", "F3"), class = "factor"), 
    value = c(500L, 400L, 300L, 200L, 250L, 100L, 155L, 90L, 
    50L, 30L, 100L, 10L)), row.names = c(NA, -12L), .Names = c("Rank", 
"variable", "value"), class = "data.frame")
01.05.2015
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..