Как уменьшить гистограмму сложенного гистограммы в ggplot2

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

Сложенный барный участок:

p <- ggplot(dat, aes(x = plant, y = percentage*100, fill = group)) + 
  geom_bar(stat = "identity", width =0.20)

и тогда я хочу изменить пробелы на position=position_dodge(0.9):

p <- ggplot(dat, aes(x = plant, y = percentage*100, fill = group)) + 
  geom_bar(stat = "identity", position=position_dodge(0.9),width =0.20)

Это решение может изменить зазоры стержней, но стержни были не сложены. Итак, как изменить ширину зазора и сохранить ширину стержня и сложить его? Заранее спасибо!

Мои данные:

structure(list(plant = structure(c(1L, 1L, 1L, 1L, 1L, 2L), .Label = c("Cucumber-1", 
"Cucumber-2", "Eggplant-1", "Eggplant-2", "Pepper-1", "Pepper-2"
), class = "factor"), group = structure(c(1L, 2L, 3L, 4L, 5L, 
1L), .Label = c("[3.19e-39,2]", "(2,4]", "(4,6]", "(6,8]", "(8,10]"
), class = "factor"), n = c(14729L, 1670L, 447L, 131L, 16L, 20206L
), percentage = c(0.866768669452127, 0.0982757606073089, 0.0263049490966869, 
0.00770905667039369, 0.000941564173483199, 0.941039493293592)), .Names = c("plant", 
"group", "n", "percentage"), class = c("grouped_df", "tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -6L), vars = list(plant), drop = TRUE, indices = list(
    0:4, 5L), group_sizes = c(5L, 1L), biggest_group_size = 5L, labels = structure(list(
    plant = structure(1:2, .Label = c("Cucumber-1", "Cucumber-2", 
    "Eggplant-1", "Eggplant-2", "Pepper-1", "Pepper-2"), class = "factor")), class = "data.frame", row.names = c(NA, 
-2L), .Names = "plant", vars = list(plant)))

1 ответ

position = position_dodge используется, чтобы показать часть заполнения гистограмм рядом. Я не могу найти решение этой проблемы. Однако, когда я сталкиваюсь с такой проблемой, я настраиваю ширину всего графика, чтобы отрегулировать ширину баров. Рассмотрите следующий пример и посмотрите графики, которые сохраняются при настройке ширины. Надеюсь это поможет. Дело в том, что если вы уменьшите ширину полосы и уменьшите расстояние между полосами, в конечном итоге ширина графика уменьшится.

ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar()
ggsave(filename = "trial1.png",plot = P,width=15,height = 10)

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

ggsave(filename = "trial2.png",plot = P,width=5,height = 10)

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

Другие вопросы по тегам