Python ve matplotlib için neredeyse yepyeni bir durumdayım ve bu yüzden tamamlamak istediğim bir grafik için Python belgelerinden bir örnek uyarlamaya çalışıyorum. Ancak, rect1
ve rect2
çağrıları için ve ax.text
'daki balta için tanımlanmamış ad hataları alıyorum. İşlev tanımları arasında aktarılmayan değerlerle ilgili bir şey olduğu hissine sahibim, ancak doğru sözdizimini anlayamıyorum. Herhangi bir fikir?Matplotlib değişken sorunları
P.S. Gerekirse ek bilgi sağlayabilirim; Bu benim ilk mesajım bu.
from inventoryClass import stockItem
import numpy as np
import matplotlib.pyplot as plt
def plotInventory(itemRecords):
stockBegin = []
stockFinish = []
stockID = []
stockItems = []
for rec in itemRecords.values() :
stockBegin.append(rec.getStockStart)
stockFinish.append(rec.getStockOnHand)
stockID.append(rec.getID)
stockItems.append(rec.getName)
N = len(stockBegin)
ind = np.arange(N) # the x locations for the groups
width = 0.35 # the width of the bars
fig, ax = plt.subplots()
rects1 = ax.bar(ind, stockBegin, width, color='r')
rects2 = ax.bar(ind + width, stockFinish, width, color='y')
# add some text for labels, title and axes ticks
ax.set_ylabel('Inventory')
ax.set_title('Stock start and end inventory, by item')
ax.set_xticks(ind + width)
ax.set_xticklabels((str(stockID[0]), str(stockID[1]), str(stockID[1])))
ax.legend((rects1[0], rects2[0]), ('Start', 'End'))
def autolabel(rects) :
for rect in rects :
height = rect.get_height()
ax.text(rect.get_x() + rect.get_width()/2., 1.05*height,
'%d' % int(height),
ha='center', va='bottom')
autolabel(rects1)
autolabel(rects2)
plt.show()
Yardımın için teşekkürler, bu gerçekten sorunumu çözüyor. Şerefe! –