データ分析・上級問題チェック

問題 30 /40

Matplotlibで、次のコードで円グラフを描画した場合、正しい説明はどれか。 labels = ['A', 'B', 'C'] x = [6, 3, 1] explode = [0, 0.2, 0] fig, ax = plt.subplots() ax.pie(x, labels=labels, startangle=90, counterclock=False, autopct='%1.1f%%', explode=explode) ax.axis('equal')

選択 1

グラフは3時の位置から時計回りに表示される。

選択 2

各データの割合が小数点以下第1位まで表示される。

選択 3

Aの部分が切り出して表示される。

選択 4

楕円で表示される。

解説

選択肢2が正解です。 問題文のコードです。 ------------------------------- labels = ['A', 'B', 'C'] x = [6, 3, 1] explode = [0, 0.2, 0] fig, ax = plt.subplots() ax.pie(x, labels=labels, startangle=90, counterclock=False, autopct='%1.1f%%', explode=explode) ax.axis('equal') ------------------------------- 次の円グラフが描画されます。
【選択肢1】 グラフは3時の位置から時計回りに表示される。 誤った説明です。 pieメソッドのデフォルトは、3時の位置から反時計回りに表示されます。問題文は、引数「startangle=90, counterclock=False」で、「12時の位置から時計回り」を指定しています。startangleの数値は単位円の角度を表しており、0°が3時、90°が12時、180°が9時、270°が6時です。 【選択肢2】 各データの割合が小数点以下第1位まで表示される。 正しい説明です。 pieメソッドの引数「autopct='%1.1f%%'」で、「60.0%」などの割合を表示しています。「%1.1f%%」は左から順番に以下を指定しています。 % → 書式化演算子 1 → 最小桁数 .1f → 小数点以下の桁数 % → 書式化演算子 % → 「%」の表示 【選択肢3】 Aの部分が切り出して表示される。 誤った説明です。 pieメソッドで引数「explode」を付けると、指定した要素を指定した距離で切り出します。問題文の場合、「6、3、1(A、B、C)」に対して、「explode = [0, 0.2, 0]」を指定しているため、Bだけ切り出されます。切り出す要素はインデックスで指定しており、「explode = [0.2, 0, 0]」であればAだけ切り出されます。 【選択肢4】 楕円で表示される。 誤った説明です。 Matplotlibは縦横比を自動調整します。円グラフの場合、実行環境によっては横長の楕円になることがあります。その場合、問題文のようにaxisメソッドで「ax.axis('equal')」として、縦横のアスペクト比を等しくします。「fig, ax = plt.subplots(figsize=(5, 5))」のように、subplots関数のfigsize引数で、描画領域の縦横を等しくしても円になります。 (公式書籍 p.199-201)