如何绘制weeknumbers(整数)图不留缺口数周不存在吗
52视图(30天)
显示旧的评论
在我的项目通常绘制某些观察事件的函数周数,在本周datafiles注册人数为整数使用语法YYWW (YY =今年最后两位数,WW =周数);例如,星期3 2023年是存储为2303。
阅读这些数据从源数据文件和策划很容易。然而,由于每年52周,显然是没有星期53 00的数据。这意味着将会有情节的差距太大。有关示例,请参见附件。
除了这个不好看,这也是一个问题当使用情节进行趋势分析和/或拟合数据。
因此我寻找一种方法来排除不存在周从图(同时保持周确实存在,但没有数据积累),这样差距消失,我有一个连续的情节,但仍然显示了weeknumbers轴。
答案(2)
Les贝克汉姆
2023年6月13日15:51
也许你可以使这种方法适应您的情况。
dt = datetime (2023 1 [1 8 15 22 4 * 22 + 3 * [7 14 21]])%的例子datetime值
y =兰德(大小(dt));%示例数据
情节(dt, y,“o”);%绘制数据与实际datetime,结果在x轴上的差距
网格在
工作=一周(dt);%的周数
图
阴谋(1:(元素个数(dt)), y,“o”);%暗算指数——没有差距
网格在
xticklabels (string (100 * ((dt) -2000年)+工作));% x轴标签与实际周YYMM格式
包含(“周(YYWW)”)
5个评论
Les贝克汉姆
2023年6月14日19:40
“我理解正确,这段代码不包括所有不存在几周,但也的周存在但我没有数据?”
它创造了情节,好几个星期没有差距,没有数据。在上面的示例中它跳过失踪的周22 - 1月- 4月- 2023 - 2023和19日——周2304年到2315年(在修改后的示例使用“iso-weekofyear”)。
Stephen23
2023年6月15日20:55
编辑:Stephen23
2023年6月16日在5:34
这是出乎意料的困难没有支持ISO 8601 weeknumbers DATETIME et al。万博1manbetx
ISO 8601周的规则数量和相应的年不是一件微不足道的小事来实现:
这是另一种方法使用分类类:
首先让创建一些随机的假数据(这些年来我选择匹配一些例子wiki页面):
[Y0, M0] = meshgrid (80:81 1:52);% 1980 w01 - 1981 w52一些日期
YW =双(组成(“% 2 d % 2 d”,Y0 (:), M0 (:)));%整数YYWW
YW ([3:6 17:32]) = [];%去除一些随机的日期,因为数据不完整
YW = (7952; YW; 8201)%增加1979 w52和1982 w01
M =兰特(元素个数(YW), 3);%随机数据绘制
现在我们可以转换为分类,尝试一些不同的情节。
最简单的方法只有情节中存在数据的日期。如果你的数据包含
所有
开始和结束日期之间的日期
或
你很高兴错过您的数据不包含的日期,那么这可能会满足您的需求:
X0 =分类(YW);
情节(X0,米)
嗯,看来,在默认情况下轴显示
所有
类别。我们可以显式地指定一个子集的蜱虫:
情节(X0,米)
甘氨胆酸axh =;
idx =国防部(双(string (axh.XTick)), 10) ~ = 0;
axh.XTick (idx) = [];
然而间隔甚至不是由于缺少日期(除了YY50和YY10之间,预计更大一步!)
所以我们需要filll的缺口。我们可以通过创建每个类别之间的每个星期结束日期……并发症是我们不得不考虑的事实ISO 8601 week-numbering年可能会有52或者53周。嗯,不是那么简单。
这是一种方法。我们生成
每一个
周四对那些年:
YY = 1900 +修复(YW / 100);%你需要处理的几个世纪里,主年等。
DW = dateshift (datetime (min (YY), 1, 1),“dayofweek”,“星期四”):calweeks (1): datetime (max (YY), 12日31);
Y2 =国防部(年(DW), 100);
W2 =一周(DW,“iso-weekofyear”);
现在我们可以生成所有类别,使用正确的每年的周数:
C2 =组成(“% 2 d % 2 d”,Y2 (:) W2 (:))
然后将这些类别添加到现有的数据使用SETCATS:
X2 = setcats (X0 C2);
情节(X2,米)
甘氨胆酸axh =;
idx =国防部(双(string (axh.XTick)), 10) ~ = 0;
axh.XTick (idx) = [];
axh。XLim = X0([1]结束);
完成了。情节与按时间顺序显示所有数据正确间隔周,和所有预期的刻度线。
希望这能激发你尝试分类类……和为你工作。