【matplotlib】途中で分断された(切れている)グラフを出力する方法[Python]

  • URLをコピーしました!
目次

matplotlib

前回、小数から整数に変更する際の小数点以下の取り扱い(切り捨て、四捨五入、切り上げ、切り下げ)に関して解説しました。

今回はmatplotlibでグラフを描写する際、途中で分断されたグラフを表示する方法を紹介します。

途中で分断されたグラフとは例えばこんな感じです。

10と20の位置でグラフが分断されているのが分かります。

例えばデータに連続性がない場合に使われるグラフですが、自分がこのようなグラフを書こうと思った時に、結構苦労したので記事にしておこうというのが今回のお話しです。

それでは始めていきましょう。

分断されたグラフ

まずは通常のグラフを表示してみます。

import random
import matplotlib.pyplot as plt

x_val = []; y_val = []
for i in range(30):
    x_val.append(i)
    y_val.append(random.randrange(0,10))

fig = plt.figure()
plt.plot(x_val, y_val)
plt.show()
実行結果

とりあえずYの値を0から9のランダムにして30個のデータ点を持ったリストを作り、グラフを作成しました。

このグラフから先ほどのXの値が10と20のところだけ点がないグラフを作成してみます。

そのような分断されたグラフを作成するにはnumpyの「np.nan」、つまり欠損値を使います。

ということでXの値が10で割った余りが0の時(if i % == 0:)にはYの値をnp.nanにするようにしてみます。

import random
import matplotlib.pyplot as plt
import numpy as np

x_val = []; y_val = []
for i in range(30):
    x_val.append(i)
    if i % 10 == 0:
        y_val.append(np.nan)
    else:
        y_val.append(random.randrange(0,10))

fig = plt.figure()
plt.plot(x_val, y_val)
plt.show()

実行結果

Xの値が10と20の時だけ点が表示されず、分断されたグラフを表示することができました。

このようにYの値に欠損値であるnp.nanを入れることで分断されたグラフを作成できます。

次回は文字列を解釈し、適切な型に変換してくれるast.literal_evalを使ってみましょう。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次