2015-03-18 480 views
0

如果餅圖中的變量低於指定的百分比,是否有辦法抑制變量的標籤?也許,當在圖餅圖選項中指定plabel()時,如果Stata沒有在餅圖中的變量分配低於10%,那麼是否存在語法來標記餅圖中的變量?雖然我可以調整plabel()中餅圖標籤的字體大小,但由於其變量的小份額,仍有多個標籤重疊。我知道我可以指定如何標記餅圖的單個切片,但是我正在生成大量圖形,並且寧願不重新貼上單個切片。Stata:如果在特定百分比下,取消餅圖中分類變量的標籤

+1

也許不是你尋求的答案,但是你正在解決的「問題」可能會出現,因爲餅圖對於這樣的數據可能是一個糟糕的選擇。條形圖或點圖可以可讀地顯示小分數和它們的分類標籤。 – 2015-03-19 00:47:17

+0

想要顯示類別但不標註它的想法很有趣。除了@ Dimitriy的有用答案之外,還可以將小類別的聚合編入「其他」類別。對不起,但我不是志願者代碼,因爲我認爲使用其他圖更好的答案,這不是一個我感興趣的問題。 – 2015-03-19 00:56:00

回答

2

就我所知,沒有正式的方法來做到這一點。這是一種笨重的方式,它依靠從12點開始按順時針順序重新排列從最大到最小的類別。當您的變量是有序的,這種行爲將是不可取的,但後來我想反正喜歡直方圖:

sysuse auto, clear 

foreach var of varlist rep78 mpg turn { 
    qui count if !missing(`var') 
    bys `var': gen frac = _N/r(N) 
    gsort -frac 
    levelsof `var' if frac>.10 

    local wc: word count `r(levels)' 
    local plabel "" 

    forvalues i=1/`wc' { 
    local plabel "`plabel' plabel(`i' name)" 
    } 

    graph pie, over(`var') `plabel' sort descending 

    drop frac 
} 

是什麼讓一切重新排序必要的是,塔塔標籤扇形從1至K開始12點'時鐘,並且無法將標籤附加到基礎數值。

+0

謝謝@ Dimitriy - 你的代碼非常有幫助。 – kathystehl 2015-03-27 15:58:50

+0

@SKA無需感謝我。如果您發現答案有用,請將其選爲左側的答案。 – 2015-03-27 16:01:32