For loop Stata中图轴上带可变范围的确定步长
我使用下面的示例代码在一个循环中生成了许多图表For loop Stata中图轴上带可变范围的确定步长,for-loop,graph,stata,For Loop,Graph,Stata,我使用下面的示例代码在一个循环中生成了许多图表 forvalues i = 1/11 { local t: label (countryID) `i' twoway line Var1 Var2 Var3 year if countryID == `i', ylabel(, valuelabel grid /// angle(horizontal)) xlabel(1999(2)2013) xtitle("") /// lpattern("
forvalues i = 1/11 {
local t: label (countryID) `i'
twoway line Var1 Var2 Var3 year if countryID == `i', ylabel(, valuelabel grid ///
angle(horizontal)) xlabel(1999(2)2013) xtitle("") ///
lpattern("l" "dash_dot" "longdash") legend(size(small)) title("`t'")
graph export output/PredictLaw`t'.png, replace
}
每个变量的值都有标签,但仅在整数级别。不过,变量本身可以接受两个整数之间的任何值。因此,我希望以某种方式确保yaxis仅使用整数作为距离,例如,始终以1为步长
但是,由于每个国家的范围不同,我希望Stata确定y轴的范围必须有多长,因为范围越短,图形看起来就越整洁。因此,我宁愿不使用ylabel(1(1)21,
形式的东西
有没有一种方法可以定义y轴的间距,同时保持y轴的范围是一个确定的变量?之后
summarize whatever, meanonly
local ymin = floor(r(min))
local ymax = ceil(r(max))
给出可以在图形调用中调用的整数结果。此处的小细节是,如果进行任何舍入,则将最小值向下舍入,将最大值向上舍入,同上,给定
floor()
和ceil()
函数,可以添加一点适合图形目的的空间。我不确定我是否理解您的要求。您介意重新措辞吗?或者发布一个图形并描述您想要/不想要的内容吗?如果您总是希望整数步长为1,那么指令必然类似于1(1)21
或1/21
。很难看出还有其他任何可能性。无论如何,你都不能说你为什么不想这样。你可以在每个图表之前总结r(min)
和r(max)
@NickCox,我正在考虑使用r(min)
r(max)
也一样,但我不知道如何将数字四舍五入,例如r(min)
以确保它们是整数。不过,我将发布一个示例图,以直观显示我在任何情况下的问题。