Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在POSIXct时间内绘图时使用ggplot设置x轴最小值和最大值_R_Datetime_Ggplot2_Plot_Posixct - Fatal编程技术网

R 在POSIXct时间内绘图时使用ggplot设置x轴最小值和最大值

R 在POSIXct时间内绘图时使用ggplot设置x轴最小值和最大值,r,datetime,ggplot2,plot,posixct,R,Datetime,Ggplot2,Plot,Posixct,我试图绘制随时间变化的值,但得到错误: Error: Invalid input: date_trans works with objects of class Date only 我和其他人一起解决了以前的问题。我想设置x轴的最小值和最大值,以便在没有数据的绘图的最末端消除空白 此代码调用一个绘图,但没有正确的x轴 ggplot(dta, aes(x= WeekStarting, y = AvgWeekEle, group = IndID))+ geom_line(size

我试图绘制随时间变化的值,但得到错误:

Error: Invalid input: date_trans works with objects of class Date only
我和其他人一起解决了以前的问题。我想设置x轴的最小值和最大值,以便在没有数据的绘图的最末端消除空白

此代码调用一个绘图,但没有正确的x轴

ggplot(dta, aes(x= WeekStarting, y = AvgWeekEle, group = IndID))+
        geom_line(size = 1)+ 
        theme(axis.text.x=element_text(angle=30, hjust=1))
我试图用下面的代码设置x轴的极限,这会产生错误

ggplot(dta, aes(x= WeekStarting, y = AvgWeekEle, group = IndID))+
        geom_line(size = 1)+ 
        theme(axis.text.x=element_text(angle=30, hjust=1))+
        scale_x_date(breaks = "1 week", labels=date_format("%b-%d-%Y"), 
            limits = as.Date(c("2014-01-6","2014-02-15")))
下面是我的数据的
dput()
。我使用的是最新版本的R,运行的是Windows7

提前谢谢

dta <- structure(list(IndID = c("BHS_011_A", "BHS_011_A", "BHS_011_A", 
"BHS_011_A", "BHS_011_A", "BHS_011_A", "BHS_011_A", "BHS_011_A", 
"BHS_015_A", "BHS_015_A", "BHS_015_A", "BHS_015_A", "BHS_015_A", 
"BHS_015_A", "BHS_015_A", "BHS_015_A", "BHS_018_A", "BHS_018_A", 
"BHS_018_A", "BHS_018_A", "BHS_018_A", "BHS_018_A", "BHS_018_A", 
"BHS_018_A"), WeekStarting = structure(c(1388905200, 1389510000, 
1390114800, 1390719600, 1391324400, 1391929200, 1392534000, 1393138800, 
1388905200, 1389510000, 1390114800, 1390719600, 1391324400, 1391929200, 
1392534000, 1393138800, 1388905200, 1389510000, 1390114800, 1390719600, 
1391324400, 1391929200, 1392534000, 1393138800), class = c("POSIXct", 
"POSIXt"), tzone = ""), AvgWeekEle = c(1717.21428571429, 1770.07142857143, 
1737.53571428571, 1673.32142857143, 1648.42857142857, 1760.71428571429, 
1668.48148148148, 1654.5, 1643.5, 1794.85714285714, 1740.64285714286, 
1664.73076923077, 1704.73076923077, 1685.2962962963, 1707.89285714286, 
1661.46428571429, 1702.87096774194, 1691.17647058824, 1653.41176470588, 
1650.30303030303, 1741.54545454545, 1652.33333333333, 1573.125, 
1570.82352941176)), .Names = c("IndID", "WeekStarting", "AvgWeekEle"
), class = "data.frame", row.names = c(3362L, 3363L, 3364L, 3365L, 
3366L, 3367L, 3368L, 3369L, 3470L, 3471L, 3472L, 3473L, 3474L, 
3475L, 3476L, 3477L, 3535L, 3536L, 3537L, 3538L, 3539L, 3540L, 
3541L, 3542L))

dta因为您的x变量属于
as.POSIXct
类,所以应该改用
scale\u x\u datetime
scale\u x\u date
用于类变量
date
(如错误消息所示)

“要删除绘图最末端的空格”,可以在
scale
调用中使用
expand
参数(请参阅)。将
expand
设置为零,将删除数据和轴之间的默认小间隙

您还可以查看如何在
scale
调用(或
xlim
)中使用
limits
参数,或使用
coord\u cartesian
进行“缩放”

ggplot(dta, aes(x= WeekStarting, y = AvgWeekEle, group = IndID)) +
  geom_line(size = 1) + 
  theme(axis.text.x=element_text(angle = 30, hjust = 1)) +
  scale_x_datetime(breaks = "1 week", labels = date_format("%b-%d-%Y"),
                   expand = c(0, 0))

因为您的x变量属于.POSIXct的类,所以您应该使用
scale\u x\u datetime
scale\u x\u date
用于类变量
date
(如错误消息所示)

“要删除绘图最末端的空格”,可以在
scale
调用中使用
expand
参数(请参阅)。将
expand
设置为零,将删除数据和轴之间的默认小间隙

您还可以查看如何在
scale
调用(或
xlim
)中使用
limits
参数,或使用
coord\u cartesian
进行“缩放”

ggplot(dta, aes(x= WeekStarting, y = AvgWeekEle, group = IndID)) +
  geom_line(size = 1) + 
  theme(axis.text.x=element_text(angle = 30, hjust = 1)) +
  scale_x_datetime(breaks = "1 week", labels = date_format("%b-%d-%Y"),
                   expand = c(0, 0))

是的,我在链接的帖子中看到了这个建议。但根据您的建议,我得到了错误“无效输入:time_trans仅适用于类POSIXct的对象”,因为这两个建议都导致了错误,我想我应该从一开始就开始。对于您建议的第二个错误有什么想法吗?更改为
scale\u x\u datetime
对我来说很有用。注意,您还需要将
限制=
as.Date
更改为
limits=as.POSIXct
尴尬和谦卑。。。谢谢我很乐意接受答案……是的,我在链接的帖子中看到了这个建议。但根据您的建议,我得到了错误“无效输入:time_trans仅适用于类POSIXct的对象”,因为这两个建议都导致了错误,我想我应该从一开始就开始。对于您建议的第二个错误有什么想法吗?更改为
scale\u x\u datetime
对我来说很有用。注意,您还需要将
限制=
as.Date
更改为
limits=as.POSIXct
尴尬和谦卑。。。谢谢我很乐意接受你的回答。。。