图表中日期标签的格式无效

时间:2016-07-25 08:31:41

标签: stata

我只是从Stata开始,但已经通过了很多可用的页面来找到答案。

使用包含两个变量aabb的简单数据集。

aa的格式为%td bb的格式为%8.0g

我使用的图形命令如下:

graph twoway tsline bb, 
title("Numbers by Day", size(medsmall)) 
ytitle("Value", size(small)) 
xtitle("Date", size(small)) 
ysize(2) 
xsize(4) 
tlabel(#15, labsize(vsmall), format(%tcD_m_CY)) 
ylabel(#10, labsize(vsmall))

我正在尝试将日期格式化为其他内容而不是21jan2016

但无论我在format函数中放入什么,我都会收到错误"无效日期"

%tcD_m_CY只是Stata论坛的一个例子:我尝试过双引号和其他内容但都失败了..

(我确实首先使用tsset来定义日期轴。)

1 个答案:

答案 0 :(得分:0)

你的问题缺乏一个最小的,完整的,可验证的例子,因为(1)它缺少我们可以阅读的数据,(2)你的例子中的几个细节与你的问题无关。见https://stackoverflow.com/help/mcve

您的示例显示了format() tlabel()%tc子选项(函数)的参数,该子参数从D_m_CY开始:这向Stata坚持认为具有的值作为每日日期输入(并计为#天,其原点为0 = 1 1960年1月)将被解释为日期时间(并计为#毫秒,原点0 = 01jan1960 00:00:00)。

因此,根据您的指示,每日日期(例如2016年7月25日(保留原因为20660)将显示为日期时间。这样的日期时间是1960年1月1日开始后约2秒;显示格式的其余部分clear set obs 15 gen aa = daily("30 Jun 2016", "DMY") + _n format aa %td mat bb = (12, 14, 10, 8, 6, 8, 9, 11, 13, 15, 17, 19, 21, 23, 25) gen bb = bb[1, _n] tsset aa graph twoway tsline bb, /// title("Numbers by Day") ytitle("Value") xtitle("") /// tlabel(#7, format(%tdd_M)) 表示“只显示我的日,月和年”,按照此说明,正如1960年1月1日所述,日,月和年。

就Stata而言,我认为您的日期格式无效;问题是人,这根本不是你想要的。当然,我无法准确解释您尝试过的任何其他代码到底出现了什么问题。

下面的假数据和代码说明了一些技巧。对于每日日期,每天标记通常是一个坏主意,超过一周的数据,因为你没有足够的空间;同样一年又一次地显示同一年通常是不必要的,并且空间使用不当。只要明确给出日期,诸如“日期”之类的轴标题就是多余的。这些要点适用于您使用的任何软件。

%td

enter image description here

这是你的图表,但底线很简单:每日日期需要某种%tc格式,help datetime格式完全错误,与令人困惑的美分和数百万美元相提并论单位。

你没有准确地说出你所读到的内容,但这有很好的记录:Stata中的if(this.model.attributes.systemColumnName === 'City') { this.$('#createButton').prop('disabled', false); } 以及它指出的所有内容都是你需要学习的。

另请注意http://www.statalist.org/forums/help#spelling