【问题标题】:Changing order of x-axis labels in ggplot更改ggplot中x轴标签的顺序
【发布时间】:2019-04-03 04:52:19
【问题描述】:

我的日期是'Dec-17','Jan-18','Feb-18','Mar-18','Apr-18','May-18','Jun-18','Jul-18','Aug-18' 当我绘图时,我需要在 x 轴上保留它。但是 x 轴正在重新排序。 我尝试了因子方法,然后我也得到了同样的结果:

> data_$Dates
[1] Apr-18 Aug-18 Dec-17 Feb-18 Jan-18 Jul-18 Jun-18 Mar-18 May-18
9 Levels: Apr-18 Aug-18 Dec-17 Feb-18 Jan-18 Jul-18 Jun-18 ... May-18

但是,我需要遵循从 Dec-17 开始的相同格式,而不是 Apr-18 我的代码:

data_$Dates <- factor(data_$Dates, levels = data_$Dates[order(data_$`Expected`)])
data_$Dates
ggplot(data=data_, aes(x=Dates, y=`Expected`, group=1)) +
  geom_line()+
  geom_point()

【问题讨论】:

  • 最简单的方法是使用as.Date("2018-01-01", etc...) 将x-vlues 设为实际日期,然后将日期标签格式化为scale_x_date(date_breaks = "1 month, date_labels = "%B").. 一些示例数据会很好...
  • @Wimpel 我需要像这样将它们显示为 DEC-17,Jan-18。这在未来可能会变得动态,所以我无法对其进行硬编码。我需要显示特定文本本身
  • @qwww 这不是 Wimple 的建议给你的吗?以所需格式显示的正确排序的日期值?如果您需要更具体的帮助,请提供一些示例数据。

标签: r dataframe ggplot2 rstudio line-plot


【解决方案1】:

您正在按字母顺序重新排序。您可能希望将您的数据转换为这样解释的数据类型(正如@Wimpel 在他/她的评论中所建议的那样)。或者,由于您只有 9 个唯一值,您可能需要手动重新排序:

date_$Dates &lt;- factor(date_$Dates, levels = c("Dec-17", "Jan-18", "Feb-18"))

(您必须将其扩展以包括我省略的六个月)。

【讨论】:

  • 我需要它们像这样显示为 DEC-17,Jan-18。这在未来可能会变得动态,所以我无法对其进行硬编码。我需要显示特定的文本本身
【解决方案2】:

让我们先生成一些示例数据:

set.seed(123)
data_ <- data.frame(Expected = sample(1:10, 9), Dates = c('Dec-17','Jan-18',
    'Feb-18','Mar-18', 'Apr-18', 'May-18','Jun-18', 'Jul-18', 'Aug-18'),
    stringsAsFactors = FALSE)

正如@Wimpel 所说,最自然的方法是将数据列转换为数据类型列。 Here 您可能会找到有关可能方法的全面讨论。最方便的解决方案之一是使用 lubridate 包:

library(lubridate)
data_$Dates_data <-  as.Date(parse_date_time(data_$Dates, "m-y"))

现在您有一个日期格式的列用作 x 数据,您可以根据自己的喜好调整 x 标签的格式(同样,正如@Wimpel 建议的那样):

pl_1 <- ggplot(data = data_, aes(x = Dates_data, y = Expected, 
    group = 1)) +
  geom_line() +
  geom_point() +
  scale_x_date(date_labels = "%b-%y", date_breaks = "1 month")
plot(pl_1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 2021-04-18
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    相关资源
    最近更新 更多