2017-11-25 12 views
0

以下に示すように、2つの異なるヒストグラムに同じ図のラベルを付けます。しかし、2つのヒストグラムの凡例はボックス形式です。ボックスをラインに変更するさまざまな方法を試しましたが、すべて動作しませんでした。私はそのような機能をどのように実装するのだろうか?伝説は手でハンドルこれを行うことについて移動するenter image description herePythonヒストグラムの凡例形式を変更する

+0

? –

答えて

1

一つの方法は、明示的に指定することです:

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() 

enter image description here

関連する問題