Pythonで複数の棒グラフを描画する方法と具体例

python
記事内に広告が含まれています。

Pythonのmatplotlibライブラリを使えば、複数のデータを視覚化する棒グラフを簡単に作成できます。

複数の系列を1つのグラフに表示することで、データの比較が視覚的にわかりやすくなります。

この記事では、Pythonで複数の棒グラフを作成するための基本的な方法から応用的な例までを解説します。

特に、データのラベル付けや色のカスタマイズ、legend(凡例)の設定方法など、グラフをより見やすくするための技術を紹介します。

DMM WEBCAMP
  • 未経験者向けプログラミングスクール
  • 現役エンジニアがしっかりサポート
  • 卒業後も安心の転職・副業サポート

Pythonでの複数の棒グラフ作成に必要な準備

Pythonで複数の棒グラフを描く際には、主にmatplotlibnumpyライブラリを使用します。

これらのライブラリを使うことで、データの処理やグラフの描画が非常に簡単になります。

まずは、これらのライブラリをインストールし、基本的なグラフ作成に必要な準備を進めましょう。

必要なライブラリのインストール

Pythonでグラフを作成するためには、matplotlibnumpyが必要です。

これらのライブラリは、以下のコマンドでインストールすることができます。

pip install matplotlib numpy

基本的なデータの準備

次に、複数の棒グラフを描くためのデータを準備します。

例えば、次のような2つのカテゴリのデータを使って、比較を行うことができます。

import numpy as np
import matplotlib.pyplot as plt

# データの準備
categories = ['A', 'B', 'C', 'D']
data1 = [4, 7, 1, 8]
data2 = [6, 2, 5, 9]

基本的な棒グラフの作成

準備したデータを使って、棒グラフを描画します。

次のコードは、2つの系列の棒グラフを1つのグラフに重ねて描画する例です。

x = np.arange(len(categories))  # X軸の位置
width = 0.35  # 各バーの幅

fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, data1, width, label='Data 1')
rects2 = ax.bar(x + width/2, data2, width, label='Data 2')

# ラベルとタイトル
ax.set_ylabel('Scores')
ax.set_title('Scores by category')
ax.set_xticks(x)
ax.set_xticklabels(categories)
ax.legend()

plt.show()
CodeCamp
  • 現役エンジニアからスキルを学べる
  • 満足度は驚異の97.4%
  • 300社以上のIT企業で研修に導入
  • 毎日9時〜21時まで、無料カウンセリングを開催中!

複数の棒グラフをカスタマイズする方法

Pythonのmatplotlibを使えば、複数の棒グラフを作成するだけでなく、さまざまなカスタマイズが可能です。

ここでは、色やラベル、凡例などのカスタマイズ方法を紹介します。

これらのカスタマイズを行うことで、グラフの見た目をより洗練されたものにできます。

グラフの色の変更

matplotlibでは、各バーの色を指定することができます。

以下の例では、デフォルトの色を変更して、データ1とデータ2に異なる色を適用しています。

rects1 = ax.bar(x - width/2, data1, width, label='Data 1', color='skyblue')
rects2 = ax.bar(x + width/2, data2, width, label='Data 2', color='orange')

凡例の設定

複数のデータを扱う場合、凡例を追加することで、グラフの理解が容易になります。

凡例を設定するには、ax.legend()を使用します。

ax.legend(loc='upper right')

ラベルの追加

棒グラフにデータラベルを追加することで、各データの具体的な数値を視覚的に表示することができます。

for rect in rects1:
    height = rect.get_height()
    ax.annotate('{}'.format(height),
                xy=(rect.get_x() + rect.get_width() / 2, height),
                xytext=(0, 3),  # ラベルを少し上に配置
                textcoords="offset points",
                ha='center', va='bottom')

【リモートワークには必須】
キャリアに合わせてお得に光回線を利用しよう
ドコモ光
開通後、最短一ヶ月で35,000円のキャッシュバック!
 
auひかり
難しい条件一切なしで、最大12,7000円のキャッシュバック!
 
ソフトバンク光
高額キャッシュバックや豪華特典をお届け!

matplotlibの応用例:3D棒グラフの作成

programming

matplotlibを使って、3D棒グラフを作成することも可能です。

これは、データをよりインタラクティブに表示するための一つの手法です。

以下のコードは、Pythonを使って3D棒グラフを作成する例です。

3D棒グラフの描画

3Dグラフを作成するためには、まずmpl_toolkits.mplot3dをインポートし、3Dプロットの準備を行います。

from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = [1, 2, 3, 4]
y = [2, 3, 4, 5]
z = np.zeros(4)

dx = np.ones(4)
dy = np.ones(4)
dz = [1, 2, 3, 4]

ax.bar3d(x, y, z, dx, dy, dz)

plt.show()

3Dグラフのカスタマイズ

2Dの棒グラフと同様に、3Dグラフでも色やラベル、軸のカスタマイズが可能です。

たとえば、次のコードでは色とラベルをカスタマイズしています。

<

code>ax.bar3d(x, y, z, dx, dy, dz, color='lightblue')

ax.set_xlabel('X Axis')
ax.set_ylabel('Y Axis')
ax.set_zlabel('Z Axis')

プログラミングスクール受講時には教育訓練給付制度を利用することで、受講料の最大80%の給付を受けることが可能です。

Pythonで棒グラフを作成するためのおすすめライブラリ

Pythonには、棒グラフを作成するための便利なライブラリが多数存在します。

ここでは、matplotlib以外のおすすめライブラリと、それらの特徴について紹介します。

用途に応じて、これらのライブラリを使い分けると良いでしょう。

seaborn

seabornは、matplotlibをベースにした高レベルの視覚化ライブラリです。

カスタマイズ性が高く、デフォルトで見やすいグラフが作成できるため、多くのユーザーに支持されています。

plotly

plotlyは、インタラクティブなグラフ作成が可能なライブラリです。

Webベースのインタラクティブグラフを作成したい場合に特に有用です。

Altair

Altairは、宣言型の視覚化ライブラリで、コードが非常にシンプルです。

データの視覚化を簡潔なコードで実現したい場合におすすめです。

まとめ:Pythonで複数の棒グラフを効率よく作成する方法

Pythonで複数の棒グラフを作成する方法について、基本から応用までを解説しました。

matplotlibやnumpyを活用することで、データの視覚化が効率的に行えます。

また、カスタマイズの自由度も高いため、用途に応じた最適なグラフを作成することが可能です。

これからもPythonを活用して、データの分析や可視化を行い、より効果的な意思決定をサポートしましょう。

【給付金が受けられる】おすすめプログラミングスクール!
  • DMM WEBCAMP
    転職成功率98%&離職率2.3%
    転職できなければ全額返金DMM.comグループならで非公開求人も多数
  • テックアカデミー
    【転職保証】受講生の100%が内定獲得!9割以上が未経験からスタート!LINEヤフー監修&万全サポート
  • Aidemy Premium
    【給付金利用の相談歓迎】AI・データ分析学ぶならAidemy Premium
  • ウズウズカレッジ
    初心者・文系出身者でもOK、IT未経験からの専門的な就業サポート

コメント

タイトルとURLをコピーしました