2017-06-12 2 views
0

Ich versuche ein Balkendiagramm zu erstellen, wo ich Referenzlinien für bestimmte y-Werte einfügen muss. Ich kann dies tun mit Yline als:Balkendiagramm mit horizontaler Bezugslinie vor

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) 

ergeben: enter image description here

das Problem ist, dass die Referenzlinie im Hintergrund und nicht sichtbar genug. Es wäre schön, es im Vordergrund zu haben, überlagert von den Balken. Ich habe versucht lstyle, aber es hat nicht den Trick gemacht. Ich sah this post auf etwas ähnliches, aber das Problem ist, ich konnte nicht herausfinden, wie || Arbeit mit over

Antwort

0

Hier ist der Code aus dem statalist schreiben Sie

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') 

und hier ist der Beweis, dass es im Zusammenhang mit machen funktioniert:

Sie liefern kein reproduzierbares Beispiel und geben nicht explizit an, welchen Code Sie versucht haben, eine horizontale Linie hinzuzufügen. Aber mögliche Probleme sind offensichtlich:

  1. Das Gerät oben nicht mit graph bar arbeiten. Sie müssen stattdessen twoway bar verwenden.

  2. Bevor Sie das tun, müssen Sie collapse libdem, by(country), um einen Datensatz mit Mitteln zu erhalten.

- weshalb das Beispiel so formuliert wurde, wie es war.

+0

Vielen Dank für Ihre schnelle Antwort! Das Problem ist, dass wenn ich twoway bar, muss ich mehr als eine Variable zum Plotten angeben. Im "over" (Land) wusste Stata, dass ich den Wert von libdem über das Land wollte. twoway bar behandelt Land als kontinuierliche numerische Variable, verliere meine Wertelabels usw. Ich bin mir nicht sicher, wie ich ein reproduzierbares Beispiel liefern kann, ohne meinen Datensatz einzugeben ... – eborbath

+0

Nicht so weit, soweit ich sehen kann. Zuallererst, wie das Beispiel zeigt, gibt es keine 'over()' Option mit 'twoway bar': Das Äquivalent gibt an, was auf der Achse _x_ steht. Zweitens wird 'collapse' nicht die Wertelabels numerischer Variablen in' by() 'verlieren. Drittens müssen Sie kein eigenes Dataset angeben. Wie in meinem Beispiel müssen Sie nur einen mit Stata gelieferten Dataset verwenden, um Ihren Code reproduzierbar zu machen. Alternativ, wenn Ihr wirkliches Problem komplizierter ist, als Sie uns sagen, verstanden, aber wie sollen wir das wissen? –

Verwandte Themen