Lin Ma Lin Ma - 1 year ago 61
Python Question

using matplotlib on Mac for Python 2.7

Wondering if anyone have met with similar issues on Mac OSX? If so, how do you resolve? Thanks.

Here are document, code and error message,

# -*- coding: utf-8 -*-

Logistic Regression 3-class Classifier

Show below is a logistic-regression classifiers decision boundaries on the
`iris <>`_ dataset. The
datapoints are colored according to their labels.


# Code source: Gaƫl Varoquaux
# Modified for documentation by Jaques Grobler
# License: BSD 3 clause

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model, datasets

# import some data to play with
iris = datasets.load_iris()
X =[:, :2] # we only take the first two features.
Y =

h = .02 # step size in the mesh

logreg = linear_model.LogisticRegression(C=1e5)

# we create an instance of Neighbours Classifier and fit the data., Y)

# Plot the decision boundary. For that, we will assign a color to each
# point in the mesh [x_min, m_max]x[y_min, y_max].
x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z = logreg.predict(np.c_[xx.ravel(), yy.ravel()])

# Put the result into a color plot
Z = Z.reshape(xx.shape)
plt.figure(1, figsize=(4, 3))
plt.pcolormesh(xx, yy, Z,

# Plot also the training points
plt.scatter(X[:, 0], X[:, 1], c=Y, edgecolors='k',
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')

plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())

Traceback (most recent call last):
File "/Users/foo/personal/law/justech/featureExtraction/", line 22, in <module>
import matplotlib.pyplot as plt
File "/Users/foo/miniconda2/lib/python2.7/site-packages/matplotlib/", line 114, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/Users/foo/miniconda2/lib/python2.7/site-packages/matplotlib/backends/", line 32, in pylab_setup
File "/Users/foo/miniconda2/lib/python2.7/site-packages/matplotlib/backends/", line 24, in <module>
from matplotlib.backends import _macosx
RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are Working with Matplotlib in a virtual enviroment see 'Working with Matplotlib in Virtual environments' in the Matplotlib FAQ

Answer Source

Are you using a virtual enviorment? Right now it thinks your python isn't a framework. in your terminal run

which python

and make sure it returns


you can always intall python as a framework at python