0
以下に示すように、2つの異なるヒストグラムに同じ図のラベルを付けます。しかし、2つのヒストグラムの凡例はボックス形式です。ボックスをラインに変更するさまざまな方法を試しましたが、すべて動作しませんでした。私はそのような機能をどのように実装するのだろうか?伝説は手でハンドルこれを行うことについて移動するPythonヒストグラムの凡例形式を変更する
以下に示すように、2つの異なるヒストグラムに同じ図のラベルを付けます。しかし、2つのヒストグラムの凡例はボックス形式です。ボックスをラインに変更するさまざまな方法を試しましたが、すべて動作しませんでした。私はそのような機能をどのように実装するのだろうか?伝説は手でハンドルこれを行うことについて移動するPythonヒストグラムの凡例形式を変更する
一つの方法は、明示的に指定することです:
handle1 = matplotlib.lines.Line2D([], [], c='r')
handle2 = matplotlib.lines.Line2D([], [], c='b')
plt.legend(handles=[handle1, handle2])
もちろん良い取引をによってあなたはすべての設定方法には以下のように、これは見えるかもしれません:
をあなたは数字を生成するために使用しているどのようなツールimport numpy as np
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
# Generate some data that sort of looks like that in the question
np.random.seed(0)
x1 = np.random.normal(2, 1, 200)
x2 = np.random.exponential(1, 200)
# Plot the data as histograms that look like unfilled lineplots
fig = plt.figure()
ax = fig.add_subplot(111)
ax.hist(x1, label='target', histtype='step')
ax.hist(x2, label='2nd halo', histtype='step')
# Create new legend handles but use the colors from the existing ones
handles, labels = ax.get_legend_handles_labels()
new_handles = [Line2D([], [], c=h.get_edgecolor()) for h in handles]
plt.legend(handles=new_handles, labels=labels)
plt.show()
? –