円グラフ (パイチャート、pie chart) ( PIE )

(1) PIEの使用例
ここでは、PIEの使用例をあげます。PIE_CHART と同じような円グラフを表示します。PIE_CHARTとは異なり、凡例が表示され、ラベルとしては比率か値のみが表示されます。
負の値を指定すると、絶対値で表示され、ラベルには正しい値が表示されます。

PIE, data[, labels]

入力パラメタ

  data
    一次元数値配列データ
    PEI_CHARTと異なり、データ数が30個より多くても表示できます。
    また、全体の0.01%未満のデータがあっても表示されます。

  labels ( オプション )
    凡例として表示する文字列。
    dataと同じ要素数の文字列配列で指定します。(デフォルト:凡例表示なし)
WINDOW,/FREE,XSIZE=400,YSIZE=400

;------------------------
; 円グラフの例
;------------------------
data   = [32,22,11,35]
labels = ['春','夏','秋','冬']

PIE, data, labels, /Percent_label, /Line_fill

END

(2) PIEのキーワード
キーワードがいくつもありますので、使用例を列挙していきます。

Colors
  各データの扇型表示の色を一次元配列で指定します。
  データ数の方が多い時には繰り返されます。
  マニュアルにはデフォルトではカラーテーブルから順番に使用されるようなことが書かれていますが、
  指定しないと全部同じ色になってしまいます。(デフォルト:!P.Color)

Line_Fill
  /LINE_FILL と指定すると、塗りつぶしではなく、ラインパターンで塗られます。
  1か0の一次元配列でも指定できます。
  その時は指定したデータのみラインパターンで塗られます。(デフォルト:塗りつぶし)

Fill_Thick
  ラインパターンの線の太さを、実数のスカラーか配列で指定します。
  配列の時は順番に適用されていきます。データ数の方が多い時には繰り返されます。
  LINE_FILL が指定されていない時は無効です。(デフォルト:!P.Thick)

Fill_Orientation
  ラインパターンの線の向きを、実数のスカラーか配列で指定します。
  水平方向から反時計回りの角度[deg]で指定します。
  配列の時は順番に適用されていきます。データ数の方が多い時には繰り返されます。
  LINE_FILL が指定されていない時は無効です。(デフォルト:任意のバラバラの向き)

Fill_Linestyle
  ラインパターンの線の種類を、整数のスカラーか配列で指定します。
  配列の時は順番に適用されていきます。データ数の方が多い時には繰り返されます。
  LINE_FILL が指定されていない時は無効です。(デフォルト:!P.Linestyle)

Fill_Spacing
  ラインパターンの線の間隔を、cm単位で、実数のスカラーか配列で指定します。
  配列の時は順番に適用されていきます。データ数の方が多い時には繰り返されます。
  LINE_FILL が指定されていない時は無効です。(デフォルト:ウィンドウ幅の1%)

Fill_Background
  ラインパターンの背景(扇型)を塗りつぶす色をスカラーか一次元配列で指定します。
  -1 の時は背景を塗りつぶしません。
  配列の時は順番に適用されていきます。データ数の方が多い時には繰り返されます。
  LINE_FILL が指定されていない時は無効です。(デフォルト:塗りつぶしなし)

Text_Color
  ラベルや凡例の文字列の色を指定します。(デフォルト:!P.Color)

Outline_Color
  扇型や凡例の枠の色を指定します。(デフォルト:!P.Color)

NoLegend_Box
  /NoLegend_Box と指定すると、凡例の枠を表示しません。

Legend_Position
  凡例を表示する位置を次のいずれかの数値で指定します。
    0  左上 (Default)
    1  右上
    2  左下
    3  右下

Percent_Label
  /Percent_Label と指定すると、各データのラベルを全体の百分率[%]で表示します。
  表示領域が狭い時には表示されません。
  /Value_Label と同時には指定できません。

Value_Label
  /Value_Label と指定すると、各データのラベルを値で表示します。
  表示領域が狭い時には表示されません。
  /Percent_Label と同時には指定できません。

Label_Colors
  ラベルの文字列の色を指定します。(デフォルト:!P.Color)
  /Percent_Label か /Value_Label が指定されていないと無効です。
  
Explode
  各データの扇表示を円グラフから分離させて表示させるかどうかを指定します。
  データ数と同じ数の整数一次元配列で指定します。
  分離させるデータは 1 を、分離させないデータは 0 を指定します。(デフォルト:分離表示なし)

Offset_Explode
  各データの扇表示を円グラフから分離させて表示する際の分離量を指定します。
  半径との比率で指定します。(デフォルト:0.1)

Shadow_Color
  影の色を指定します。(デフォルト:影表示なし)

Offset_Shadow
  影表示で、円の中心からずらす量を指定します。
  半径との比率で指定します。(デフォルト:0.05)

Slice_Start_Ang
  最初のデータの扇型の表示開始位置を角度[度]で指定します。
  真上が0[deg]で、時計回りが正です。(デフォルト:0)

Slice_Reverse_Direction
  /Slice_Reverse_Direction と指定すると各データを半時計方向に順に表示していきます。
  (デフォルト:時計回り)

その他に PLOT コマンドと同じ以下のキーワードも指定できます。

  Charsize
  Font
  Noerase
  Subtitle
  Title
  [XY]Margin
WINDOW,/FREE,XSIZE=400,YSIZE=400

data   = [32,22,11,35]
labels = ['春','夏','秋','冬']

colors = ['00FF00'X,'0000FF'X,'FF0000'X,'333333'X]

title = 'Color,/Percent_label指定'

PIE, data, labels, TITLE=title, /Percent_label, Color=colors

END
WINDOW,/FREE,XSIZE=400,YSIZE=400

data   = [32,22,11,35]
labels = ['春','夏','秋','冬']

colors = ['00FF00'X,'0000FF'X,'FF0000'X,'333333'X]

title = '/Value_label,/Line_fill,Fill_Background指定'

PIE, data, labels, TITLE=title, /Value_label, /Line_fill, Fill_Background=colors

END
WINDOW,/FREE,XSIZE=400,YSIZE=400

data   = [32,22,11,35]
labels = ['春','夏','秋','冬']

colors     = ['00FF00'X,'0000FF'X,'FF0000'X,'333333'X]
fill_ori   = [0, 30, 60, 90] 
fill_space = [0.1, 0.15, 0.2, 0.25] 

title = '/Line_fill,Fill_Orientation,Fill_Spacing指定'

PIE, data, labels, TITLE=title, /Line_fill, Fill_Orientation=fill_ori, Fill_Spacing=fill_space

END
WINDOW,/FREE,XSIZE=400,YSIZE=400

data   = [32,22,11,35]
labels = ['春','夏','秋','冬']

colors     = ['00FF00'X,'0000FF'X,'FF0000'X,'333333'X]
fill_thick = [1, 1.5, 2.0, 2.5] 

title = '/Value_label,/Line_fill,Fill_Thick,Text_Color指定'

PIE, data, labels, TITLE=title, /Value_label, /Line_fill, Fill_Thick=fill_thick, Text_Color='00FF00'X

END
WINDOW,/FREE,XSIZE=400,YSIZE=400

data   = [32,22,11,35]
labels = ['春','夏','秋','冬']

colors = ['00FF00'X,'0000FF'X,'FF0000'X,'333333'X]

title = '/Value_label,Color,/NoLegend_Box,Legend_Position指定'

PIE, data, labels, TITLE=title, /Value_label, Color=colors, /NoLegend_Box, Legend_Position=1

END
WINDOW,/FREE,XSIZE=400,YSIZE=400

data   = [32,22,11,35]
labels = ['春','夏','秋','冬']

colors  = ['00FF00'X,'0000FF'X,'FF0000'X,'333333'X]
lcolors = ['000000'X,'000000'X,'00FFFF'X,'0000FF'X]

title = '/Value_label,Color,Label_Colors,Slice_Start_Ang指定'

PIE, data, labels, TITLE=title, /Value_label, Color=colors, Label_Colors=lcolors, Slice_Start_Ang=90

END
WINDOW,/FREE,XSIZE=400,YSIZE=400

data   = [32,22,11,35]
labels = ['春','夏','秋','冬']

colors  = ['00FF00'X,'0000FF'X,'FF0000'X,'333333'X]
explode = [0,1,0,0]

title = 'Explode,Offset_Explode,Shadow_Color指定'

PIE, data, labels, TITLE=title, /Value_label, Color=colors, Explode=explode, $
                   Offset_Explode=0.2, Shadow_Color='66AA66'X

END