首先,对不起我的英语不好:(。
我对geom_bar
有一个疑问:在我的绘图中,数字位于条形的中间。例如,Bäume
似乎有将近50'0000棵树(IBaum = 5
),但实际上在0和5之间有将近50'000棵树。
所以我的问题是:如何更改数字在x轴上的位置?
我当前的代码是:
p1 = ggplot(data = plotdat,
aes(x = factor(IB), y = Anzahl, fill = factor(PFT, levels = c(1,2,3,4)))) +
geom_bar(stat = "identity", width = 0.8, position = "stack")+
labs(title = TeX(paste("Anzahl der Bäume mit Wachstum $\\geq$ 0 zu $I_{Baum}$",
sep = "" )),
x = TeX(paste("$I_{Baum} $", "$\\lbrack$%$\\rbrack$", "aus Inventur", invn[1],
sep = " ")),
y = TeX("Anzahl der Bäume mit Wachstum $\\geq$ 0")) +
scale_fill_manual("PFT",
values = c("#95C11F", "#788938", "#243B0B", "#006633"),
labels= c(1,2,3,4)) +
theme_minimal(base_size = 14)
答案 0 :(得分:0)
如果x轴是连续的(而不是离散的),则可以将断点定位在非整数位置。这是一个玩具数据集供说明:
data <- mtcars %>% mutate(x = factor(cyl)) %>% count(x)
> data
# A tibble: 3 x 2
x n
<fctr> <int>
1 4 11
2 6 7
3 8 14
x变量是此处的一个因子(对应于代码中的x = factor(IB)
)。如果按原样绘制,标签将居中于每个条形的中间。但是,如果将x变量 back 转换为数值,则可以按以下方式指定中断,即在开始处插入“ 0”标签(x = 0.5),然后将所有其他值移入标签向右按0.5:
ggplot(data,
aes(x = as.integer(x), y = n)) +
geom_col() +
scale_x_continuous(breaks = c(0.5, 0.5 + seq_along(levels(data$x))),
labels = c("0", levels(data$x))) +
theme_minimal()