Die Antwort hängt wahrscheinlich davon ab, welche Art von Daten Sie zeigen möchten. Es gibt mehrere Möglichkeiten, eine solche Handlung zu erzeugen,
- Verwendung
Rectangle
s mit vorgegebenen Eckpunkten
- Verwendung
imshow
eines Arrays auf einem gleichmäßig beabstandeten Raster
- Verwendung
pcolormesh
eines Arrays auf einem ungleich beabstandeten Gitter
Angenommen, Sie möchten ein Histogramm plotten und die dritte Option auswählen, kann eine mögliche Lösung in etwa so aussehen (basierend auf einem)
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()
Vielen Dank für diese perfekte Antwort! – insomnia