2017-06-12 58 views
0

我想创建一个条形图,我需要为特定的y值放置参考线。我可以与YLINE做到这一点:前面带水平参考线的条形图

graph bar libdem, over(country, sort(libdem) descending label(alternate)) /// 
bar(1, color(gs10) lcolor(black) lwidth(medium)) ytitle("") yline(.3864677, lstyle(foreground)) /// 
title("Liberal Democracy") ylabel(,gstyle(minor)) legend(off) 

导致: enter image description here

的问题是,基准线是在后台不够明显。将它放在前景中,覆盖在条上会很好。我试过lstyle,但它没有办法。我对类似的东西看到this post,但问题是我无法弄清楚如何使||工作,over

回答

0

下面是来自Statalist张贴链接到您

sysuse auto, clear 

collapse mpg, by(rep78) 

twoway bar mpg rep78, base(0) barw(0.6) || function y = 23, ra(0.7 5.3) /// 
yla(0(5)40) legend(off) ytitle(Mean miles per gallon) xtitle(`: var label rep78') 

代码和这里的证明,它作品: enter image description here

你不提供一个可重复的例子,并没有明确指出你试图添加一个水平线的代码。但可能出现的问题是显而易见的:

  1. 设备上面不会graph bar工作。您确实需要使用twoway bar

  2. 在你这样做之前,你将需要collapse libdem, by(country)来获得一个数据集的手段。

- 这就是为什么这个例子被描述为原因。

+0

感谢您的快速回复!问题是,一旦我做了双向酒吧,我需要指定多个变量进行绘图。在Stata所知道的'over(country)'中,我想要在全国各地的价值libdem。双向条将国家视为一个连续的数字变量,我失去了我的价值标签等等。我不知道如何在不输入数据集的情况下提供可重复的示例... – eborbath

+0

就我所见,这并非如此。首先,作为例子说明问题,''twoway bar''没有'over()'选项:相当于指定了_x_轴上的内容。其次,'collapse'不会丢失'by()'中数值变量的值标签。第三,您不需要提供自己的数据集:正如我的示例中,您只需使用Stata提供的数据集即可使您的代码具有可再现性。或者,如果你真正的问题比你告诉我们的更复杂,理解,但我们应该如何知道? –