首页 > 解决方案 > 并非所有 x 标签都显示在 geom_line()

问题描述

我有一个类似于下面的df:

df <- 
structure(list(Month = c(201701, 201702, 201703, 201704, 201705, 201706, 
                       201707, 201708, 201709, 201710, 201711, 201712, 
                       201801, 201802, 201803, 201804, 201805, 201806, 
                       201807, 201808, 201809, 201810, 201811, 201812), 
             Category = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 
                                    4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 
                                    1L, 2L, 3L, 4L, 5L, 6L), 
                                  .Label = c("A", "B", "C", "D", "E", "F"), 
                                  class = "factor"), 
             Percentage = c(0.46, 0.47, 0.14, 0.42, 0.32, 0.26, 0.37, 
                            0.07, 0.33, 0.35, 0.23, 0.36, 0.47, 0.13, 
                            0.23, 0.47, 0.49, 0.06, 0.24, 0.28, 0.45, 
                            0.07, 0.49, 0.47)), 
        class = "data.frame", row.names = c(NA, -24L))

月份:采用以下格式(“201701”、“201702”、(...)、“201805”)

类别:(“A”、“B”、“C”等)

百分比:(“0.01”、“0.03”、“0.06”等)

当我将其绘制为:

ggplot(df, aes(x = Month, y = Percentage, color = Category)) +
  geom_line() + scale_x_continuous()

它仅返回 x 轴的 3 个标签,并且它们已从原始数据集更改。

有人知道如何以原始格式显示所有标签吗?

谢谢!

标签: rggplot2

解决方案


这应该适用于在 X 轴上显示所有值,如果这不起作用,则使用提供示例数据集dput(df)

scale_x_continuous("Month",as.character(Month), breaks = Month)

推荐阅读