【发布时间】:2018-05-06 16:22:11
【问题描述】:
我正在尝试生成一个带有刻度的水平图。
df = data.frame(quality = c("low", "medium", "high", "perfect"),
n = c(0.1, 11, 0.32, 87.45))
require(ggplot2)
require(dplyr)
size = 20
df %>%
ggplot() +
geom_bar(aes(x = quality, y = n),
stat = "identity", fill = "gray70",
position = "dodge") +
geom_text(aes(x = quality, y = n,
label = paste0(round(n, 2), "%")),
position = position_dodge(width = 0.9),
hjust = -0.2,
size = 10, color = "gray50") +
coord_flip() +
ggtitle("") +
xlab("gps_quality\n") +
#scale_x_continuous(limits = c(0, 101)) +
theme_classic() +
theme(axis.title = element_text(size = size, color = "gray70"),
axis.text.x = element_blank(),
axis.title.x = element_blank(),
axis.ticks = element_blank(),
axis.line = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size = size,
color = ifelse(c(0,1,2,3) %in% c(2, 3), "tomato1", "gray40")))
不幸的是,一个条比另一个长得多,而 ggplot 部分降低了它的价值。
有什么想法吗?
我已经尝试过scale_y_continuous(expand = c(0, 0),但它在刻度文本和条形之间增加了很多间隙。
【问题讨论】:
-
好像在{ggplot2}的最后一个dev版本中,可以在
coord_cartesian中添加clip="off"。也许这可以帮助:twitter.com/ClausWilke/status/991542952802619392?s=19 -
您能否详细说明如何将其应用于我的问题?
-
我不太确定。我刚刚在 Twitter 上看到了这一点,我认为这可能适用于你的情况。我还没有探索。