以下代码从numpy ndarray读取每一行并在同一图上创建多个直方图:
fig, ax = plt.subplots(figsize=(10, 8))
fontP = FontProperties()
fontP.set_size('small')
for f in eval_list:
local_id = getIndexByIdentifier(f)
temp_sim = total_sim[local_id,:]
c=np.random.rand(3,1)
ax.hist(temp_sim, 10, ec=c, fc='none', lw=1.5, histtype='step', label=f)
ax.legend(loc="upper left", bbox_to_anchor=(1.1,1.1),prop = fontP)
如何将所有直方图包含在一个图中,如何将它们排列在5 x 5的网格中?
以下是更新的代码:
#Plot indvidual Histograms
SIZE = 10
all_data=[]
for f in eval_list:
local_id = getIndexByIdentifier(f)
temp_sim = total_sim[local_id,:]
all_data.append(temp_sim)
# create grid 10x10
fi, axi = plt.subplots(SIZE, SIZE,figsize=(50,50))
for idx, data in enumerate(all_data):
x = idx % SIZE
y = idx // SIZE
axi[y, x].hist(data)
答案 0 :(得分:2)
您必须使用不同的ax
将绘图放在“网格”中的不同“单元格”
import matplotlib.pyplot as plt
import random
SIZE = 5
# random data
all_data = []
for x in range(SIZE*SIZE):
all_data.append([ random.randint(0,10) for _ in range(10) ])
# create grid 5x5
f, ax = plt.subplots(SIZE, SIZE)
# put data in different cell
for idx, data in enumerate(all_data):
x = idx % SIZE
y = idx // SIZE
ax[y, x].hist(data)
plt.show()