Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
126 views
in Technique[技术] by (71.8m points)

r - ggplot2: keep a space on the side even if there's no legend

I have a stacked bar graph with a single column, and I would like to use ggrepel to put a legend with segments on the side. This is what I have so far:

library(ggplot2)
library(ggrepel)

data <- data.frame(
  id = 1,
  region = factor(c("A", "B", "C")),
  value = c(1, 2, 3)
)

ggplot(data = data, 
       aes(x = id, y = value, fill = region)) +
  geom_bar(position = "stack", stat = "identity", width = 0.1) +
  theme_void() + 
  theme(legend.position = "none",
        legend.margin = margin(c(10, 70, 5, 5))) + 
  geom_text_repel(
    aes(label = region),
    position = position_stack(vjust = 1),
    hjust = 40,
    box.padding = .4
  )

With legend: enter image description here Without legend: enter image description here As you can see, removing the legend has made the plot expand on the full width. My goal is to keep a blank space on the side, where the legend was, so that I can display the labels on the side. How can I do that?

question from:https://stackoverflow.com/questions/65909557/ggplot2-keep-a-space-on-the-side-even-if-theres-no-legend

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...