Reputation: 5
Using ggplot, you can change the width of a bar of a bar graph by modifying width:
geom_bar(stat="identity",position=position_dodge(),width = .9)
You can uniformly change the distance of the bars using position_dodge():
geom_bar(stat="identity",position=position_dodge(1),width = .9)
How do I customize the distance between bars so they are varied in a ununiform manner?
Upvotes: 0
Views: 198
Reputation: 173793
It's not clear exactly what you mean. I'm assuming you mean you have a discrete x axis variable and you wish to specify custom spacing between each bar. It's possible to use position_jitter
to get random spacing, though this also affects bar width and I'm guessing is not what you want.
I would probably handle this by using a numeric x scale and relabelling the axis with my factor levels:
library(ggplot2)
ggplot(data = data.frame(x = 1:10 + rep(c(0.1, -0.1), 5), y = sample(11:20))) +
geom_bar(aes(x, y, fill = factor(x)), color = "black", stat = "identity") +
scale_x_continuous(breaks = 1:10 + rep(c(0.1, -0.1), 5),
labels = LETTERS[1:10]) +
guides(fill = guide_none())
Of course, we can only guess at what you really want since you didn't provide a motivating example.
Upvotes: 0