更改Python直方图的图例格式

更改Python直方图的图例格式

问题描述:

我在同一图中标注两个不同的直方图,如下所示。但是,这两个直方图的图例以一个框的格式显示。我尝试过不同的方法来改变框,但都没有工作。我不知道如何实现这样的功能?到去这样做enter image description here更改Python直方图的图例格式

+0

你用什么工具来生成数字? –

一种方式是明确指定传说处理由手:你如何设置好一切,这可能看起来

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