我正在绘制独立射击手的模拟条纹长度分布图。 x轴是长度(0、1、2、3等,每个代表不同的情况),y轴是计数(多少次)。这是我的简单代码:
ggplot(data = sim_streak, aes(x = length)) + geom_bar()
条形图显示如下: enter image description here
但是x坐标仅为“ 0”,“ 2”,“ 4”,“ 6”,“ 8”。如何在x轴上添加更多x坐标,例如“ 0”,“ 1”,“ 2”,“ 3”,“ 4”,“ 5”,“ 6”,“ 7”,“ 8”? / p>
开始时,我以为是因为我在Rstudio中的绘图区域不够大,无法容纳所有X坐标。但是,即使我扩大了窗格布局的大小,它也无法正常工作。
然后,我尝试搜索并测试scale_x_continuous()是否有效。不幸的是我失败了。
期待您的建议。谢谢。
答案 0 :(得分:1)
您可以尝试将x变量更改为一个因子,然后进行绘图。使用+ xlab()
更改x轴标题。
data.frame(x=1:10,y=runif(10)) %>% ggplot(aes(factor(x),y)) +
geom_bar(stat='identity') + xlab('situation number')
答案 1 :(得分:0)
正如Kstew所指出的,您可能想为要绘制的组创建一个具有正确名称的矢量。但是,如果您需要手动更改它们,则可以使用以下代码:
library(ggplot2)
x <- c("group 1", "group 2")
y <- c(10,15)
ggplot() +
geom_bar(aes(x = x, y = y), stat = "identity") +
scale_x_discrete(labels = c("Group A", "Group B"))
但是我不建议您这样做,因为它容易出错。 GGplot barplot with hand drawn names
答案 2 :(得分:0)
我已将代码更新为
ggplot(data = sim_streak, aes(x = factor(length))) + geom_bar() + xlab('length')
And the plot shows as: 如果没有“ xlab('length')”,则x轴标签将为“ factor(length)”。谢谢您的建议。