R 装箱日期,但不在x轴上显示每个箱子
我有一个满是日期和值对的文件。我想按月份对点进行分类,然后显示一个方框和胡须图。我的问题是我有几个月的数据,所以我只想显示一些x轴标签 我的代码如下所示:R 装箱日期,但不在x轴上显示每个箱子,r,ggplot2,R,Ggplot2,我有一个满是日期和值对的文件。我想按月份对点进行分类,然后显示一个方框和胡须图。我的问题是我有几个月的数据,所以我只想显示一些x轴标签 我的代码如下所示: library(ggplot2) library(reshape2) library(scales) data <- read.delim("values.tsv", header=TRUE) # Interpret the strings as dates data$Date <- as.Date(data$Date, "%
library(ggplot2)
library(reshape2)
library(scales)
data <- read.delim("values.tsv", header=TRUE)
# Interpret the strings as dates
data$Date <- as.Date(data$Date, "%Y-%m-%d %H:%M:%S %z")
# Bin the data by month
data$Date <- cut(data$Date, breaks="1 month")
ggplot(data, aes(factor(Date), Temperature)) +
geom_boxplot()
ggsave("output.pdf", width=8, height=6, units="in")
实际数据由40个月内的数百个数据点组成。数据被正确地装箱,但是当我试图通过
scale_x_date(date_breaks="4 months", date_labels="%b '%y")
我得到了错误
错误:无效输入:date_trans仅适用于类date的对象
我猜想,
cut
似乎将输入日期转换为其他字符串。如何将x轴值转换回日期,以便对其应用scale\u x\u date
。问题在于cut
正在将数据转换为因子,因此它不再是日期,因此无法应用scale\u x\u date
我们可以通过为箱线图创建一个一个月的分组变量,并在aes
调用中对观察值进行分组来解决这个问题
data$Month <- cut(data$Date, breaks="1 month")
ggplot(data, aes(Date, Temperature, group = Month)) +
geom_boxplot() +
scale_x_date(date_breaks="4 months", date_labels="%b '%y")
data$Month问题在于cut
正在将数据转换为一个因子,因此它不再是一个日期,因此无法应用scale\u x\u date
我们可以通过为箱线图创建一个一个月的分组变量,并在aes
调用中对观察值进行分组来解决这个问题
data$Month <- cut(data$Date, breaks="1 month")
ggplot(data, aes(Date, Temperature, group = Month)) +
geom_boxplot() +
scale_x_date(date_breaks="4 months", date_labels="%b '%y")
data$Month绘图前是否检查了Date
的类别?然而,我认为即使它们是日期,通过调用aes(factor(Date))来
您正在ggplot调用中再次将它们转换为因子。因此我认为缩放x_日期
不起作用。@LorenzoBusetto是的,如果我省略了剪切
调用,那么我可以在以后成功使用缩放x_日期
。我假设这意味着日期
确实包含日期。是吗在绘图之前检查Date
类?但是,我认为即使它们是日期,也可以通过调用aes(factor(Date))来检查
您正在ggplot调用中再次将它们转换为因子。因此,我认为缩放x_日期
不起作用。@LorenzoBusetto Yes如果我省略剪切
调用,那么我可以在以后成功地使用缩放x_日期
。我假设这意味着日期
确实包含以前的日期。