ValueError:在图中未找到轴实例参数 [英] ValueError: Axes instance argument was not found in a figure

查看:72
本文介绍了ValueError:在图中未找到轴实例参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在通过学习scikit-学习:RaúlGarreta的Python机器学习"来学习scikit-学习.

I am studying scikit-learn with 'Learning scikit-learn: Machine Learning in Python by Raúl Garreta'.

在jupyter Notebook中,它从代码 In [1] In [7] 均有效.但是 In [8] 代码不起作用.哪有错

In jupyter Notebook, from code In[1] to In[7] it works. But In[8] code does not work. Which is wrong?

# In[1]:
from sklearn import datasets
iris = datasets.load_iris()
X_iris, y_iris = iris.data, iris.target
print X_iris.shape, y_iris.shape

# In[2]:
from sklearn.cross_validation import train_test_split
from sklearn import preprocessing
X, y = X_iris[:, :2], y_iris
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=33)
print X_train.shape, y_train.shape

# In[3]:
scaler = preprocessing.StandardScaler().fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)

# In[4]:
get_ipython().magic(u'matplotlib inline')
import matplotlib
from matplotlib import pylab
import numpy as np
import matplotlib.pyplot as plt
colors = ['red', 'greenyellow', 'blue']
for i in xrange(len(colors)):
    xs = X_train[:,0][y_train == i]
    ys = X_train[:,1][y_train == i]
    plt.scatter(xs, ys, c=colors[i])
plt.legend(iris.target_names) 
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')

# In[5]:
from sklearn.linear_model import SGDClassifier
clf = SGDClassifier()
clf.fit(X_train, y_train)

# In[6]:
print clf.coef_

# In[7]:
print clf.intercept_

In [8]中的代码不起作用.

Codes in In[8] does not work.

# In[8]:
x_min, x_max = X_train[:,0].min() - .5, X_train[:,0].max() +.5
y_min, y_max = X_train[:,1].min() - .5, X_train[:,1].max() +.5
xs = np.arange(x_min, x_max, 0.5)
fig, axes = plt.subplots(1,3)
fig.set_size_inches(10, 6)
for i in [0, 1, 2]:
    axes[i].set_aspect('equal')
    axes[i].set_title('Class '+ str(i) + ' versus the rest')
    axes[i].set_xlabel('Sepal length')
    axes[i].set_ylabel('Sepal width')
    axes[i].set_xlim(x_min, x_max)
    axes[i].set_ylim(y_min, y_max)
    pylab.sca(axes[i])
    plt.scatter(X_train[:,0], X_train[:, 1], c=y_train, cmap=plt.cm.prism)
    ys = (-clf.intercept_[i] - xs * clf.coef_[i, 0]) / clf.coef_[i, 1]
    plt.plot(xs, ys, hold=True)
    plt.show()

运行时出现以下错误消息.

The below error message appears when running.

推荐答案

plt.sca(axes [i])

plt.sca(axes[i])

那没关系

这篇关于ValueError:在图中未找到轴实例参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆