【问题标题】:Change axis labels from months to years将轴标签从月更改为年
【发布时间】:2016-02-11 22:36:00
【问题描述】:

我有一个在轴上显示太多标签的数据集。当我将它显示为月份时,它太拥挤了。我希望将标签更改为年份,但保持线条不变。

这里有一些示例代码来解释我正在尝试什么。

library (ggplot2)
library (dplyr)
library (tidyr)

# create data
a = paste("m_",1:36,sep = "") # lables for 36 months of data
b = paste("c",1:6,sep = "")
mydata = data.frame(matrix(rnorm(36),6,36))
names(mydata) = a
mydata$cust = b
mydata = mydata[,c(ncol(mydata),1:(ncol(mydata)-1))] #move "cust" to 1st column

# plot data
p_data = mydata %>% gather(period,Qty,-cust)
p_data[, 2] <- factor(p_data[, 2], levels = unique(p_data[, 2])) # from Stackoverflow (thanks!)
pl=(ggplot(data=p_data,aes(x=period,y=Qty,group=cust,colour=cust)) +
    geom_line(size=.4))

# print plot
pl

【问题讨论】:

    标签: r ggplot2 dplyr


    【解决方案1】:
    #Look at `?scale_x_discrete`, for example:
    
    #Make x axis breaks and labels
    xbrks <- c('m_1', 'm_13', 'm_25', 'm_36')
    xlabs <- paste('Year', 1:length(xbrks))
    
    # plot data
    p_data = mydata %>% gather(period,Qty,-cust)
    p_data[, 2] <- factor(p_data[, 2], levels = unique(p_data[, 2])) # from Stackoverflow (thanks!)
    pl=(ggplot(data=p_data,aes(x=period, y=Qty,group=cust,colour=cust)) +
        geom_line(size=.4)) + scale_x_discrete(breaks=xbrks, labels=xlabs)
    
    # print plot
    pl
    

    【讨论】:

    • 实际上,我将它用于不同大小的数据帧,因此年数会发生变化。除了专门命名 xbrks,还有其他方法吗?
    猜你喜欢
    • 1970-01-01
    • 2021-08-15
    • 2015-02-23
    • 2020-08-11
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    相关资源
    最近更新 更多