TL; DR은 -> 어떻게 하나의 선 그래프 범례 만들 수
Matplotlib
의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의 답변을 살펴보면 웹 사이트에 표시된 예보다 훨씬 간단합니다. 도움이 되길 바랍니다.
import matplotlib.pyplot as plt
대신에 사용 됩니다PyPlot