gpt4 book ai didi

r - 你能把标签放在单杠之间吗?

转载 作者:行者123 更新时间:2023-12-05 08:45:30 25 4
gpt4 key购买 nike

我正在绘制水平堆叠条形图。我的巧克力棒的标签很长。有什么办法可以把它们放在相应的栏上方吗?不然我页面的空间没有利用好,剧情会显示的很小。这是我的代码和情节:

I'd like to put "Zivildienst" and "Katastrophenschutz" above the bars, not to the left of them.

我想将“Zivildienst”和“Katastrophenschutz”放在条形上方,而不是左侧。

data3 <- data.frame(System=rep(c('Zivildienst', 'Katastrophenschutz'), each=5),
Einstellung=rep(c('Sehr unwahrscheinich','Eher unwahrscheinlich','Weiss nicht','Eher wahrscheinlich','Sehr wahrscheinlich'), times=2),
Anzahl=c(131, 142, 283, 421, 981, 54, 140, 490, 418, 856))
level_order <- c('Zivildienst', 'Katastrophenschutz')


# Get the levels for "Einstellung" in the required order
data3$Einstellung = factor(data3$Einstellung, levels = c('Weiss nicht','Sehr unwahrscheinich','Eher unwahrscheinlich','Eher wahrscheinlich','Sehr wahrscheinlich'))
data3 = arrange(data3, System, desc(Einstellung))

# Calculate the percentages
data3 = ddply(data3, .(System), transform, percent = Anzahl/sum(Anzahl) * 100)

# Format the labels and calculate their positions
data3 = ddply(data3, .(System), transform, pos = (cumsum(Anzahl) - 0.5 * Anzahl))
data3$label = paste0(sprintf("%.0f", data3$percent), "%")

cbPalette <- c("#999999", "#2A7AD4", "#5C96D7", "#D3A253", "#D48F1D")

# Plot
ggplot(data3, aes(x = factor(System), y = Anzahl, fill = Einstellung)) +
geom_bar(stat = "identity", width = .3) +
geom_text(aes(y = pos, label = label), size = 4) +
theme(panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.title.y = element_blank(),
aspect.ratio = .3) +
scale_fill_manual(values=cbPalette)+
coord_flip()+
ggtitle("Werden Sie sich für die Alternative entscheiden?", subtitle = "2000 Männer befragt") + labs(x = NULL)

最佳答案

您需要通过删除轴文本并使用 geom_text 添加自定义标签来执行此操作

ggplot(data3, aes(x = factor(System), y = Anzahl, fill = Einstellung)) +
geom_bar(stat = "identity", width = .3) +
geom_text(aes(y = pos, label = label), size = 4) +
geom_text(aes(y = 0, label = System, x = factor(System)), size = 5,
hjust = 0, nudge_x = 0.3, check_overlap = TRUE) +
theme(panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.title.y = element_blank(),
aspect.ratio = .3) +
scale_fill_manual(values=cbPalette)+
coord_flip()+
ggtitle("Werden Sie sich für die Alternative entscheiden?",
subtitle = "2000 Männer befragt") +
labs(x = NULL) +
theme(axis.text.y = element_blank(),
axis.ticks.y = element_blank())

enter image description here

关于r - 你能把标签放在单杠之间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72529474/

25 4 0