TL; DR - >どのようにして中線グラフの凡例を作成することができます
Matplotlib
s「をPyPlot
余分な変数を作成せずに?
以下のグラフ化スクリプトを検討してください:
if __name__ == '__main__':
PyPlot.plot(total_lengths, sort_times_bubble, 'b-',
total_lengths, sort_times_ins, 'r-',
total_lengths, sort_times_merge_r, 'g+',
total_lengths, sort_times_merge_i, 'p-', )
PyPlot.title("Combined Statistics")
PyPlot.xlabel("Length of list (number)")
PyPlot.ylabel("Time taken (seconds)")
PyPlot.show()
あなたが見ることができるように、これは非常に基本的な使用であるmatplotlib
のPyPlot
。これにより、理想的には次のようなグラフが生成されます。
特別なことは何もありません。しかし、どのデータがどこにプロットされているかは不明です(私はいくつかのソートアルゴリズムのデータ、所要時間に対する長さをプロットしようとしているので、どの線がどれであるかを人々に知ってもらいたいと思います)。したがって、伝説が必要ですが、以下の例(公式サイトから)を見てください。
ax = subplot(1,1,1)
p1, = ax.plot([1,2,3], label="line 1")
p2, = ax.plot([3,2,1], label="line 2")
p3, = ax.plot([2,3,1], label="line 3")
handles, labels = ax.get_legend_handles_labels()
# reverse the order
ax.legend(handles[::-1], labels[::-1])
# or sort them by labels
import operator
hl = sorted(zip(handles, labels),
key=operator.itemgetter(1))
handles2, labels2 = zip(*hl)
ax.legend(handles2, labels2)
追加の変数を作成する必要があることがわかりますax
。この追加の変数を作成し、現在のスクリプトの単純さを維持せずに、グラフに凡例を追加するにはどうすればよいですか?
matplotlib
以前に使ったことがないので、物事をできるだけ単純にしたかったです。また、Robの回答を見ると、Webサイトに表示されている例よりもはるかに単純です。お役に立てば幸いです。
import matplotlib.pyplot as plt
代わりに使用することですPyPlot