1

私は Stata を初めて使用します。棒グラフにラベルを追加する方法を誰かが教えてくれると助かります。

5 つのカテゴリ (たとえば、リンゴ、オレンジ、バナナ、グレープ、レモン) の度数があり、これらのカテゴリのパーセンテージを比較する棒グラフを作成したいと考えています (Y のスケールはパーセンテージです) また、バーの外に度数データを追加したいと考えています。ラベルとして。

ただし、グラフの各カテゴリに関連するデータをさらに組み込みたいと考えています。

Excel で計算された 2 つのインデックス (CS と DS) があり、値はそれぞれ 0 から 1 の間、-1 から 0 の間です。そのため、カテゴリごとに 2 つの CS インデックスと DS インデックスがあり、各カテゴリの各バー内にそれらを表示する必要があります。

そう:

var1 (categories): Apple, Orange, Banana, Grape, Lemon
var2 (frequencies): 65, 20, 1, 0, 39
var3 (CS index): 0.25, 0.12, 0, 0.42, 0.09
var4 (DS index): -0.15, -0.46, 0, -0.12, -0.2

コマンドを実行する必要があるようですtwowayが、失敗しました。

以下のコードを使用して、カテゴリを比較したいものを大まかに取得しましたが、それに他のデータを追加する方法がわかりません:

 graph hbar (sum) var2, over(var1) blabel(bar, format(%9.3g)) asyvars
 percentages  showyvars bar(1, color(gs6)) bar(2, color(gs6)) bar(3,
 color(gs6)) bar(4, color(gs6)) bar(5, color(gs6)) bar(6, color(gs6))
 legend (off) bargap(100) ytitle("Percentage", size(3.5))
 graphregion(fcolor(white))  plotregion(margin(zero))
4

1 に答える 1

3

twoway bar重要なポイント: この問題は、文字列変数をマーカー ラベルとして使用して余分なテキストに切り替えて表示することで簡単に解決できます。

twowayあなたがそれを示していないので、あなたのコードのどこが間違っていたのかについてコメントすることはできません.

詳細に言えば、あなたの例とデザインは不可能な要求を課しています。1 つの棒の長さはゼロでなければならず、もう 1 つの棒は非常に小さいため、余分なテキストを中に入れることはできません。しかし、このコード セグメントはいくつかのテクニックを示しています。

clear 
set scheme s1color 

input str6 fruit frequency CS DS 
Apple    65    0.25   -0.15 
Orange   20    0.12   -0.46
Banana   1     0      0
Grape    0     0.42   -0.12
Lemon    39    0.09   -0.2 
end 

encode fruit, gen(Fruit)
su frequency
gen percent = 100 * frequency/r(sum)

twoway bar percent Fruit, horizontal barw(0.8) yla(1/5, valuelabel ang(h) noticks) bfcolor(none)

gen x = 3
gen text1 = "CS:" + string(CS, "%4.2f") 
gen text2 = "DS:" + string(DS, "%4.2f")
gen y1 = Fruit + 0.2
gen y2 = Fruit - 0.2 

twoway bar percent Fruit, horizontal barw(0.8) yla(1/5, valuelabel ang(h) noticks) bfcolor(none) ///
|| scatter y1 x , ms(none) mlabpos(3) mlab(text1) ///
|| scatter y2 x , ms(none) mlabpos(3) mlab(text2) legend(off) xtitle(percent) ///
|| scatter Fruit percent, ms(none) mlabpos(3) mlab(percent) xsc(r(0, 56)) 

これは結果のグラフです:

ここに画像の説明を入力

于 2015-04-22T09:40:34.573 に答える