如何使用ggplot在条形图中的x轴上添加x坐标?

时间:2019-07-16 19:53:56

标签: r

我正在绘制独立射击手的模拟条纹长度分布图。 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()是否有效。不幸的是我失败了。

期待您的建议。谢谢。

3 个答案:

答案 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')

bar plot

答案 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)”。谢谢您的建议。