Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/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
For loop Stata中图轴上带可变范围的确定步长_For Loop_Graph_Stata - Fatal编程技术网

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)
以确保它们是整数。不过,我将发布一个示例图,以直观显示我在任何情况下的问题。