NumPy Matplotlib
Matplotlib は Python のプロットライブラリです。NumPy と一緒に使用でき、MatLab の効果的なオープンソース代替手段を提供します。また、PyQt や wxPython などの GUI ツールキットと一緒に使用することもできます。
pip3 インストール:
pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
Linux システムでは、Linux パッケージマネージャを使用してインストールすることもできます:
Debian / Ubuntu:
sudo apt-get install python-matplotlib
Fedora / Redhat:
sudo yum install python-matplotlib
インストール後、次のコマンドを使用してpython -m pip listmatplotlib モジュールがインストールされているかどうかを確認できます。
$ pip3 list | grep matplotlib matplotlib 3.3.0
例
例
上記の例では、np.arange() 関数が x 軸上の値を作成します。y 軸上の対応する値は、別の配列オブジェクト y に格納されます。これらの値は、matplotlib パッケージの pyplot サブモジュールの plot() 関数を使用して描画されます。
グラフは show() 関数によって表示されます。

グラフの中国語表示
Matplotlib はデフォルトでは中国語をサポートしていません。次の簡単な方法で解決できます。
ここでは源ノ角ゴシック(思源黑体)を使用します。源ノ角ゴシックは、Adobe と Google がリリースしたオープンソースフォントです。
公式サイト:https://source.typekit.com/source-han-serif/cn/
GitHub アドレス:https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese
リンクを開いたら、その中から1つ選択してください:

クラウドドライブからダウンロードすることもできます:https://pan.baidu.com/s/10-w1JbXZSnx3Tm6uGpPGOw、抽出コード:yxqu。
OTF フォント(例:SourceHanSansSC-Bold.otf)をダウンロードし、そのファイルを現在実行中のコードファイルに配置します:
SourceHanSansSC-Bold.otf ファイルを現在実行中のコードファイルに配置します:
例
実行すると、出力結果は下図のようになります:

さらに、システムのフォントを使用することもできます:
from matplotlib import pyplot as plt import matplotlib a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist]) for i in a: print(i)font_manager の ttflist に登録されているすべての名前を出力し、中国語フォント(例:STFangsong(仿宋))を見つけて、次のコードを追加します:
plt.rcParams['font.family']=['STFangsong']
線形グラフの代替として、plot() 関数に書式文字列を追加することで離散値を表示できます。次の書式文字を使用できます。
| 文字 | 説明 |
|---|---|
'-' |
実線スタイル |
'--' |
破線スタイル |
'-.' |
一点鎖線スタイル |
':' |
点線スタイル |
'.' |
点マーカー |
',' |
ピクセルマーカー |
'o' |
円マーカー |
'v' |
逆三角形マーカー |
'^' |
正三角形マーカー |
'<' |
左三角形マーカー |
'>' |
右三角形マーカー |
'1' |
下矢印マーカー |
'2' |
上矢印マーカー |
'3' |
左矢印マーカー |
'4' |
右矢印マーカー |
's' |
正方形マーカー |
'p' |
五角形マーカー |
'*' |
星形マーカー |
'h' |
六角形マーカー 1 |
'H' |
六角形マーカー 2 |
'+' |
プラスマーカー |
'x' |
X マーカー |
'D' |
ひし形マーカー |
'd' |
細長いひし形マーカー |
'|' |
垂直線マーカー |
'_' |
水平線マーカー |
以下は色の略語です:
| 文字 | 色 |
|---|---|
'b' |
青 |
'g' |
緑 |
'r' |
赤 |
'c' |
シアン |
'm' |
マゼンタ |
'y' |
黄 |
'k' |
黒 |
'w' |
白 |
点を表す円を表示するには、上記の例の線の代わりに、plot() 関数の書式文字列として 'ob' を使用します。
例
実行すると、出力結果は下図のようになります:

正弦波の描画
次の例では、matplotlib を使用して正弦波グラフを生成します。
例
実行すると、出力結果は下図のようになります:

subplot()
subplot() 関数を使用すると、同じ図に異なるものを描画できます。
次の例では、正弦と余弦の値を描画します:
例
実行すると、出力結果は下図のようになります:

bar()
pyplot サブモジュールは、棒グラフを生成する bar() 関数を提供します。
次の例では、2 組の x 配列と y 配列の棒グラフを生成します。
例
実行すると、出力結果は下図のようになります:

numpy.histogram()
numpy.histogram() 関数は、データの頻度分布のグラフィカルな表現です。水平方向のサイズが等しい長方形は、ビンと呼ばれるクラス間隔に対応し、変数 height は頻度に対応します。
numpy.histogram() 関数は、入力配列とビンの 2 つのパラメータを受け取ります。ビン配列内の連続する要素は、各ビンの境界として使用されます。
例
出力結果は次のとおりです:
[3 4 5 2 1] [ 0 20 40 60 80 100]
plt()
Matplotlib は、ヒストグラムの数値表現をグラフに変換できます。pyplot サブモジュールの plt() 関数は、データとビン配列を含む配列をパラメータとして受け取り、ヒストグラムに変換します。
例
実行すると、出力結果は下図のようになります:

その他の拡張機能Matplotlib の詳細な参考資料:
- Matplotlib チュートリアル 1
- Matplotlib チュートリアル 2
- ユーザーガイド
- よくある質問と回答
- スクリーンショット