R 在ggplot2中订购x轴日值

R 在ggplot2中订购x轴日值,r,date,ggplot2,R,Date,Ggplot2,我有以下数据集。正如你所见,我有一些两周的定量数据,我想比较一下他们的天数(即:09年的星期一和10日的星期一): 我得到了下面的代码,但是天是无序的。我是否可以按时间顺序排列这些天: ggplot(data = my_data, aes(x = as.factor(x = day), y = n, col = week, gro

我有以下数据集。正如你所见,我有一些两周的定量数据,我想比较一下他们的天数(即:09年的星期一和10日的星期一):

我得到了下面的代码,但是天是无序的。我是否可以按时间顺序排列这些天:

ggplot(data = my_data, aes(x = as.factor(x = day), 
                           y = n, 
                           col = week, 
                           group = week)) + 
  geom_line() + 
  geom_point()

您需要重新排列
日的级别,这是决定打印顺序的因素。您可以键入一周中的几天,或者使用您最喜欢的方法生成星期日到星期六的日期序列,并在其上调用
工作日
(或
格式
strftime
,使用
格式=/a
)。您可以在绘图前在data.frame上执行此操作(这是一个好主意,因为这是存储数据的最佳方式),也可以在绘图时在
aes
内部执行此操作:

ggplot(data = my_data, aes(x = factor(day, weekdays(min(my_data$date) + 0:6)), 
                           y = n, 
                           col = week, 
                           group = week)) + 
    geom_line() + geom_point() + xlab('Weekday')

您需要重新排列
日的级别,这是决定打印顺序的因素。您可以键入一周中的几天,或者使用您最喜欢的方法生成星期日到星期六的日期序列,并在其上调用
工作日
(或
格式
strftime
,使用
格式=/a
)。您可以在绘图前在data.frame上执行此操作(这是一个好主意,因为这是存储数据的最佳方式),也可以在绘图时在
aes
内部执行此操作:

ggplot(data = my_data, aes(x = factor(day, weekdays(min(my_data$date) + 0:6)), 
                           y = n, 
                           col = week, 
                           group = week)) + 
    geom_line() + geom_point() + xlab('Weekday')

关于这一点,我们已经回答了好几次了。试试my_data$day,或者如果你真的讨厌键入days,
factor(my_data$day,工作日(as.Date('1970-01-03')+1:7))
。这已经被回答了好几次了。试试my_data$day,或者如果你真的讨厌键入days,
factor(my_data$day,工作日(如.Date('1970-01-03')+1:7))