タイムラインチャートやランクチャート、スロープチャートなど、順位の推移を表したい時使うグラフです。
散布図と線の組み合わせでかけそうです。
書いてみる
データを用意します。
例えば、行がチーム、1列目が一つ前の順位、2列目が今季の順位とします。
import matplotlib.pyplot as plt import numpy as np data = np.array([ [1,2], [2,1], [3,5], [4,4], [5,3] ])
描画します。 (上にはったグラフになります)
散布図も折れ線も一つ目の引数がx座標、二つ目がy座標になります。(線の場合は、xとyの組み合わせを順につないでいきます)
今回は色を変えたいので順にループします。
一点、普通に描画すると、左下を原点にスタートするので、set_ylim
でy座標を逆にしています。(順位は小さい数値が、高いことを表現したいため)
#(0,0)が左上になるように準備 fig, ax = plt.subplots() min_v = data.min() - 1 max_v = data.max() + 1 ax.set_ylim([max_v,min_v]) # 描画 for d in data: ax.scatter([1,2],[d[0],d[1]]) ax.plot([1,2],[d[0],d[1]])