R使用面_包裹绘制具有时间间隔的时间序列

R使用面_包裹绘制具有时间间隔的时间序列,r,ggplot2,time-series,R,Ggplot2,Time Series,我想用2个不同的数据帧绘制一个时间序列。问题是数据中存在很大的时间间隔。我想有差距消除,并得到4个小地块,而不是一个大的巨大差距。我知道facet_wrap可以完成这项工作,但我在我的情节中无法实现。我不能只是手动切断间隙,我需要一些自动的 library(ggplot2) theme_set(theme_gray()) p1 = ggplot() + geom_bar(data = Test1, aes(x = Test1$Date, y = Test1$G), stat="ident

我想用2个不同的数据帧绘制一个时间序列。问题是数据中存在很大的时间间隔。我想有差距消除,并得到4个小地块,而不是一个大的巨大差距。我知道facet_wrap可以完成这项工作,但我在我的情节中无法实现。我不能只是手动切断间隙,我需要一些自动的

library(ggplot2)
theme_set(theme_gray()) 
p1 = ggplot() + 
  geom_bar(data = Test1, aes(x = Test1$Date, y = Test1$G), stat="identity", color = "red") +
  geom_bar(data = Test2, aes(x = Test2$Date, y = Test2$G), stat="identity", color = "grey") +
  scale_x_date(date_labels ="%m/%y",date_breaks  = "1 month")

p1
测试1:

测试2:

通常最好不要在aes中使用$index;当您使用data=时,尤其如此,更惯用的方法是geom_bardata=Test1、aesDate、G等等

我们可以使用cumsumdiffDate>。通过间隙来获取组,但不清楚间隙应该在哪里。比如说,

tablediffTest1$Date 1 15 26 83 247 15 1 1 1 1 tablediffTest2$Date 1 4 5 7 62 185 211 2 2 1 1 2 您可以说是4个方面,但在这两个数据集中都没有提供4个方面的间隙宽度。我将使用Test2,间隙宽度为10,但这意味着Test1将只填充四个方面中的三个

由于我们正在刻面,我们需要向这两个数据集中添加一些分组变量

mindates 10, min,simplify=FALSE 密友 通常最好不要在aes中使用$index;当您使用data=时,尤其如此,更惯用的方法是geom_bardata=Test1、aesDate、G等等

我们可以使用cumsumdiffDate>。通过间隙来获取组,但不清楚间隙应该在哪里。比如说,

tablediffTest1$Date 1 15 26 83 247 15 1 1 1 1 tablediffTest2$Date 1 4 5 7 62 185 211 2 2 1 1 2 您可以说是4个方面,但在这两个数据集中都没有提供4个方面的间隙宽度。我将使用Test2,间隙宽度为10,但这意味着Test1将只填充四个方面中的三个

由于我们正在刻面,我们需要向这两个数据集中添加一些分组变量

mindates 10, min,simplify=FALSE
mindates这里有一个解决方案,它使用分层聚类来找到好的断点

图书馆弹琴 图书馆GGPLOT2 df% cutreek=4 ggplotdata=df_clust,aesx=Date,y=G,color=as.factorclust+ 几何点 以下是聚类的结果:

现在我们可以进入所需的绘图:

theme_settheme_gray ggplotdata=df_clust,aesx=Date,y=G,fill=df_group+ geom_barstat=标识+ 刻度\填充\手动值=c1=红色,2=灰色+ 平面网格~clust,scales=free 由v0.3.0于2020-06-07创建


您可能需要稍微调整一下日期轴,使其看起来更漂亮。

这里有一个解决方案,它使用分层集群来找到好的断点

图书馆弹琴 图书馆GGPLOT2 df% cutreek=4 ggplotdata=df_clust,aesx=Date,y=G,color=as.factorclust+ 几何点 以下是聚类的结果:

现在我们可以进入所需的绘图:

theme_settheme_gray ggplotdata=df_clust,aesx=Date,y=G,fill=df_group+ geom_barstat=标识+ 刻度\填充\手动值=c1=红色,2=灰色+ 平面网格~clust,scales=free 由v0.3.0于2020-06-07创建


你可能想玩一下日期轴,让它看起来更漂亮。

DF1==Test1和DF2==Test2?是的,很抱歉我没有说清楚。斯波克先生,这两个答案中的一个或两个解决了你的问题吗?DF1==Test1和DF2==Test2?是的,很抱歉我没有说清楚。斯波克先生,两个答案中的一个或两个解决了你的问题吗?很好地使用了df_组。很好地使用了df_组。
structure(list(Date = structure(c(17186, 17187, 17188, 17189, 
17436, 17437, 17438, 17453, 17454, 17455, 17456, 17457, 17458, 
17541, 17542, 17543, 17569, 17570, 17571, 17572), class = "Date"), 
    G = c(1L, 8L, 2L, 13L, 3L, 8L, 4L, 5L, 3L, 4L, 9L, 7L, 11L, 
    7L, 6L, 7L, 4L, 7L, 5L, 4L)), row.names = c("20", "21", "22", 
"23", "270", "271", "272", "287", "288", "289", "290", "291", 
"292", "375", "376", "377", "403", "404", "405", "406"), class = "data.frame", .Names = c("Date", 
"G"))
structure(list(Date = structure(c(17167, 17168, 17169, 17170, 
17171, 17172, 17173, 17174, 17175, 17176, 17177, 17178, 17179, 
17180, 17181, 17182, 17183, 17184, 17185, 17190, 17191, 17192, 
17193, 17194, 17195, 17196, 17197, 17198, 17199, 17200, 17201, 
17202, 17203, 17204, 17205, 17206, 17207, 17208, 17209, 17210, 
17211, 17212, 17213, 17214, 17215, 17216, 17217, 17218, 17219, 
17220, 17221, 17222, 17223, 17224, 17225, 17410, 17411, 17412, 
17413, 17414, 17415, 17416, 17417, 17418, 17419, 17420, 17421, 
17422, 17423, 17424, 17425, 17426, 17427, 17428, 17429, 17430, 
17431, 17432, 17433, 17434, 17435, 17439, 17440, 17441, 17442, 
17443, 17444, 17445, 17446, 17447, 17448, 17449, 17450, 17451, 
17452, 17459, 17460, 17461, 17462, 17463, 17464, 17465, 17466, 
17467, 17468, 17469, 17470, 17532, 17533, 17534, 17535, 17536, 
17537, 17538, 17539, 17540, 17544, 17545, 17546, 17547, 17548, 
17549, 17550, 17551, 17552, 17553, 17554, 17555, 17556, 17557, 
17558, 17559, 17560, 17561, 17562, 17563, 17564, 17565, 17566, 
17567, 17568, 17573, 17574, 17575, 17576, 17577, 17578, 17579, 
17580, 17581, 17582, 17583, 17584, 17585, 17586, 17587, 17588, 
17589, 17590, 17775, 17776, 17777, 17778, 17779, 17780, 17781, 
17782, 17783, 17784, 17785, 17786, 17787, 17788, 17789, 17790, 
17791, 17792, 17793, 17794, 17795, 17796, 17797, 17798, 17799, 
17800, 17801, 17802, 17803, 17804, 17805, 17806, 17807, 17808, 
17809, 17810, 17811, 17812, 17813, 17814, 17815, 17816, 17817, 
17818, 17819, 17820, 17821, 17822, 17823, 17824, 17825, 17826, 
17827, 17828, 17829, 17830, 17831, 17832, 17833, 17834, 17835
), class = "Date"), G = c(3L, 9L, 7L, 2L, 3L, 4L, 4L, 5L, 2L, 
6L, 6L, 8L, 7L, 1L, 2L, 9L, 3L, 7L, 10L, 11L, 6L, 3L, 4L, 4L, 
2L, 9L, 3L, 3L, 2L, 6L, 1L, 3L, 7L, 5L, 2L, 6L, 7L, 6L, 2L, 2L, 
7L, 2L, 3L, 4L, 6L, 6L, 4L, 6L, 3L, 2L, 6L, 2L, 3L, 7L, 5L, 7L, 
4L, 5L, 4L, 2L, 4L, 7L, 4L, 4L, 7L, 6L, 4L, 1L, 8L, 4L, 3L, 4L, 
6L, 6L, 5L, 5L, 6L, 1L, 3L, 8L, 7L, 6L, 2L, 4L, 5L, 8L, 4L, 4L, 
2L, 5L, 7L, 7L, 4L, 5L, 5L, 5L, 4L, 1L, 13L, 3L, 6L, 8L, 3L, 
3L, 2L, 2L, 3L, 5L, 4L, 5L, 3L, 5L, 6L, 2L, 5L, 7L, 2L, 3L, 6L, 
7L, 2L, 5L, 6L, 2L, 5L, 6L, 5L, 5L, 8L, 3L, 3L, 4L, 5L, 8L, 10L, 
6L, 5L, 2L, 6L, 4L, 3L, 3L, 2L, 5L, 3L, 4L, 5L, 7L, 2L, 5L, 6L, 
7L, 6L, 5L, 4L, 4L, 7L, 2L, 5L, 3L, 3L, 6L, 6L, 3L, 5L, 4L, 5L, 
3L, 9L, 3L, 3L, 2L, 5L, 3L, 3L, 9L, 6L, 1L, 3L, 6L, 6L, 3L, 8L, 
9L, 4L, 3L, 5L, 6L, 2L, 10L, 4L, 7L, 4L, 3L, 5L, 3L, 4L, 4L, 
6L, 0L, 3L, 5L, 1L, 6L, 3L, 5L, 4L, 1L, 1L, 5L, 5L, 1L, 3L, 4L, 
11L, 3L, 1L, 7L, 1L, 6L)), row.names = c("1", "2", "3", "4", 
"5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", 
"16", "17", "18", "19", "24", "25", "26", "27", "28", "29", "30", 
"31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", 
"42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", 
"53", "54", "55", "56", "57", "58", "59", "244", "245", "246", 
"247", "248", "249", "250", "251", "252", "253", "254", "255", 
"256", "257", "258", "259", "260", "261", "262", "263", "264", 
"265", "266", "267", "268", "269", "273", "274", "275", "276", 
"277", "278", "279", "280", "281", "282", "283", "284", "285", 
"286", "293", "294", "295", "296", "297", "298", "299", "300", 
"301", "302", "303", "304", "366", "367", "368", "369", "370", 
"371", "372", "373", "374", "378", "379", "380", "381", "382", 
"383", "384", "385", "386", "387", "388", "389", "390", "391", 
"392", "393", "394", "395", "396", "397", "398", "399", "400", 
"401", "402", "407", "408", "409", "410", "411", "412", "413", 
"414", "415", "416", "417", "418", "419", "420", "421", "422", 
"423", "424", "609", "610", "611", "612", "613", "614", "615", 
"616", "617", "618", "619", "620", "621", "622", "623", "624", 
"625", "626", "627", "628", "629", "630", "631", "632", "633", 
"634", "635", "636", "637", "638", "639", "640", "641", "642", 
"643", "644", "645", "646", "647", "648", "649", "650", "651", 
"652", "653", "654", "655", "656", "657", "658", "659", "660", 
"661", "662", "663", "664", "665", "666", "667", "668", "669"
), class = "data.frame", .Names = c("Date", "G"))