2016-06-10 5 views
1

Как избавиться от всего этого пространства, где синие линии?Управление общей шириной штанги

данных:

data = data.frame(is_repeat = c(0,0,0,1,1,1,1,1,1,1), 
        value = c(12000,8000,20000,14000,15000,11000,20000,60000,20000, 20000)) 

data$is_repeat = factor(data$is_repeat, levels = c(0,1), 
             labels = c("One-time", "Repeat")) 

Участок:

ggplot(data, aes(is_repeat, value)) + 
     geom_bar(stat = "identity", width = 0.3) + 
     ggtitle("Title") + 
     xlab("Type of event") + 
     ylab("Total Value") + 
     ylim(0, 150000) + 
     theme_minimal() 

enter image description here

редактировать: Я посмотрел на этот вопрос, и это не решить мою проблему. Я предполагаю, что в сюжете другого вопроса есть 4 бара, поэтому он выглядит заполненным. Я хочу уменьшить общую ширину оси X.

другое изменение: Добавленные данные.

+0

Чтобы получить помощь, вы, безусловно, должны дать больше контекста и объяснения о вашей проблеме. Каков ожидаемый результат против текущего результата? Можете ли вы показать больше кода? – GaijinJim

+4

похоже: http://stackoverflow.com/questions/25887066/remove-space-between-bars-ggplot2 – aosmith

+1

'geom_bar (stat =" identity ", width = 1)' – alistaire

ответ

3

Если вы хотите, чтобы полностью удалить пространство между решеткой и вы не возражаете ширину полос вы можете сделать это с:

geom_bar(stat="identity", position="stack", width=1) 

или theme(aspect.ratio=1)

И удалить пространство от конца участка до баров вам нужно

scale_x_discrete(expand = c(0,0), limits=c("One-time", "Repeat")) 

Так что ваш код выглядит следующим образом:

ggplot(data, aes(is_repeat, value)) + 
    geom_bar(stat="identity", position="stack", width=1) + 
    ggtitle("Title") + 
    xlab("Type of event") + 
    ylab("Total Value") + 
    ylim(0, 150000) + 
    scale_x_discrete(expand = c(0,0), limits=c("One-time", "Repeat")) + 
    theme_minimal() 

И выход:

enter image description here

Вы можете добавить пространство между столбцами с изменением width=1