目次

概要

Pythonのグラフ描画ライブラリ Matplotlib の覚え書き。

インストール

pip install matplotlib

使い方

日本語対応

TODO:

折れ線グラフの描画

TODO:

散布図の描画

TODO:

ヒストグラムの描画

TODO:

目盛りの設定

TODO:

グリッドの描画

TODO:

判例の描画

TODO:

線の設定

TODO:

グラフを重ねる

TODO:

任意の位置に線を引く

TODO:

任意の位置に文字を書く

TODO:

領域を分割して複数のグラフを描く

TODO:

サンプル

サーバーのロードアベレージの時系列データをグラフ描画してみる。

サンプルデータ
filesample_loadaverage.csv

sample.py

# coding: utf-8

import io
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import base64


def main():

  df = pd.read_csv("sample_loadaverage.csv")

  # 日本語フォントを利用可能にしておく
  plt.rcParams['font.sans-serif'] = ['Hiragino Maru Gothic Pro', 'Yu Gothic', 'Meirio', 'Takao', 'IPAexGothic', 'IPAPGothic', 'Noto Sans CJK JP']

  plt.title("2019-08-01", size = 10, color = "black")
  plt.suptitle("Load Average", size = 12, color = "black")
  plt.xticks(np.arange(0, 144, 6), np.arange(0, 24))
  plt.xlabel("時刻")
  plt.ylabel("ロードアベレージ")

  plt.plot(df["datetime"], df["load-average01"])

  # そのまま描画(jupyter notebook 等の場合)
  plt.show()

  # ファイルに出力
  plt.savefig("sample_loadaverage.png")

  # 画像データを取得
  buff = io.BytesIO()
  plt.savefig(buff, format="png")
  plt.close()

  # 画像データをbase64エンコードしてHTMLに出力.
  with open("sample_loadaverage.html", "w") as f:
    encoded_image = base64.b64encode(buff.getvalue()).decode("utf-8")
    f.write("<!doctype html>")
    f.write("<html>")
    f.write("<meta charset='utf-8'>")
    f.write("<img src='data:image/png;base64," + encoded_image + "' />")
    f.write("</html>")

if __name__ == "__main__":
  main()

結果

sample_loadaverage.png


添付ファイル: filesample_loadaverage.csv 8件 [詳細] filesample_loadaverage.png 8件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-09-02 (月) 20:18:17 (14d)