我的圖像繪制不對勁,求老師和大佬幫忙
import?pandas?as?pd
import?matplotlib.pyplot?as?plt
import?numpy?as?np
from?matplotlib.colors?import?ListedColormap
from?perceptron?import?perceptron
file?="data.csv"
def?plot_decision_reqions(X,y,classifier,resolution=0.02):
????markers=('s','x','o','v')
????colors?=?('red','blue','lightgreen','gray','cyan')
????cmap?=?ListedColormap(colors[:len(np.unique(y))])
????x1_min,x1_max?=?X[:,0].min()?-?1,X[:,0].max()
????x2_min,x2_max?=?X[:,1].min()?-?1?,X[:,1].max()
????xx1,xx2?=?np.meshgrid(np.arange(x1_min,x1_max,resolution),np.arange(x2_min,x2_max))
????Z?=?classifier.predict(np.array([xx1.ravel(),xx2.ravel()]).T)
????Z?=Z.reshape(xx1.shape)
????plt.contourf(xx1,xx2,Z,alpha=0.4,cmap=cmap)
????plt.xlim(xx1.min(),xx1.max())
????plt.ylim(xx2.min(),xx2.max())
????for?idx,cl?in?enumerate(np.unique(y)):
????????plt.scatter(x=X[y==cl,0],y=X[y==cl,1],alpha=0.8,c=cmap(idx),marker=markers[idx],label=cl)
df?=?pd.read_csv(file,header=None)
y?=?df.loc[0:99,4].values
y?=?np.where(y=='Iris-setosa',-1,1)
X?=df.iloc[0:100,[0,2]].values
plt.scatter(X[:50,0],X[:50,1],color='red',marker='o',label='setosa')
plt.scatter(X[50:100,0],X[50:100,1],color='blue',marker='x',label='versicolor')
plt.xlabel('X')
plt.ylabel('Y')
plt.legend(loc='upper?left')
ppn?=?perceptron(eta=0.1,n_iter=10)
ppn.fit(X,y)
plt.plot(range(1,len(ppn.errors_)+1),ppn.errors_,marker='o')
plt.xlabel('Epocha')
plt.ylabel('按錯誤次數分')
plot_decision_reqions(X,y,ppn,resolution=0.02)
plt.show()畫出的圖像是這樣的:

2018-10-23
通過圖上xlabel可以看到顯示的是“Epocha”,是上一張圖的橫軸,