データ分析・上級問題チェック
問題 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)
