我有两个numpy数据集,并尝试制作两个数字(每个数字包括两个数据集)。
两个数字都没有显示图例。 如果有人可以帮我修复脚本,我会很感激,
先谢谢,
x=np.random.randint(0,10,(1000))
y=np.random.randint(5,15,(1000))
x_min=np.min(x)
x_max=np.max(x)
y_min=np.min(y)
y_max=np.max(y)
min_hist=min(x_min,y_min)
max_hist=max(x_max,y_max)
num_bins=30
bin_ranges= np.linspace(min_hist, max_hist, num_bins)
###### figure 1
fig, ax = plt.subplots()
ax.hist(x, color='lightblue', alpha=0.5, normed=True, bins=bin_ranges)
ax.hist(y, color='salmon', alpha=0.5, normed=True,bins=bin_ranges)
ax.set(title='including zero values ', ylabel='frequency')
ax.margins(0.05)
ax.set_ylim(bottom=0)
ax.legend()
fig.savefig(os.path.join(inputdir,"fig1.png"))
############################ figure 2
x_nonzero=x[np.nonzero(x)]
y_nonzero=y[np.nonzero(y)]
x_nonzero_min=np.min(x_nonzero)
x_nonzero_max=np.max(x_nonzero)
y_nonzero_min=np.min(y_nonzero)
y_nonzero_max=np.max(y_nonzero)
min_hist_nonzero=min(x_nonzero_min,y_nonzero_min)
max_hist_nonzero=max(x_nonzero_max,y_nonzero_max)
bin_ranges_nonzero= np.linspace(min_hist_nonzero, max_hist_nonzero, num_bins)
fig2, ax2 = plt.subplots()
ax2.hist(x_nonzero, color='lightblue', alpha=0.5, normed=True, bins=bin_ranges_nonzero)
ax2.hist(y_nonzero, color='salmon', alpha=0.5, normed=True,bins=bin_ranges_nonzero)
ax2.set(title='excluding zero values ', ylabel='frequency')
ax2.margins(0.05)
ax2.set_ylim(bottom=0)
ax2.legend()
fig2.savefig(os.path.join(inputdir,"fig2.png"))
plt.show()
答案 0 :(得分:2)
当你说"我无法让传奇工作时#34;我假设你的意思是没有传说出现。
考虑一下示例代码,这是一个非常简单的绘制histgoram的例子,就像你想要做的那样:
import numpy as np
import matplotlib.pyplot as plt
data = np.random.randint(0,10,(1000))
fig,ax = plt.subplots()
ax.hist(data,bins=10,edgecolor='black')
ax.legend()
plt.show()
这将正确绘制图形,但是在控制台中应该有一个警告
C:\ Python27 \ lib中\站点包\ matplotlib \ axes_axes.py:545: UserWarning:找不到标记的对象。使用label =' ...'克瓦格 个别情节。 warnings.warn("未找到标记的对象。"
这告诉您在label=
ax.hist()
因此,如果我们包括:
ax.hist(data,bins=10,edgecolor='black',label="Entry 1")
我们得到以下图表: