Ответ, вероятно, зависит от того, какие данные вы хотите отображать. Есть несколько способов получения такой сюжет,
- Использование
Rectangle
с с заданными вершинами
- Использование
imshow
массива на равном расстоянии сетки
- Использование
pcolormesh
массива на неравные интервалы сетки
Предполагая, что вы хотите построить гистограмму и выбрать третий вариант, возможное решение может выглядеть примерно так (на основе histogram2d
)
import matplotlib.pyplot as plt
import numpy as np
xedges = [0, 1, 1.5, 3, 5]
yedges = [0, 2, 3, 4, 6]
# produce histogram
x = np.random.normal(2.5, 1, 100)
y = np.random.normal(1.5, 1, 100)
H, xedges, yedges = np.histogram2d(y, x, bins=(xedges, yedges))
fig=plt.figure()
ax = fig.add_subplot(111)
ax.set_title('Something')
X, Y = np.meshgrid(xedges, yedges)
im = ax.pcolormesh(X, Y, H)
# label the histogram bins
for i in range(len(yedges)-1):
for j in range(len(xedges)-1):
ax.text((xedges[j+1]-xedges[j])/2.+xedges[j] ,
(yedges[i+1]-yedges[i])/2.+yedges[i] ,
str(H[i, j]) , ha="center", va="center", color="w", fontweight="bold")
plt.colorbar(im)
plt.show()
Спасибо за этот идеальный ответ! – insomnia