Matplotlib pyplot.title(string) returns error
Solution 1
It happened to me because I tried to do plot.title = "Some string"
so that rewrote the title()
method. That's the exact reason why it happens :) .
As others have said you just need to restart the kernel, no need to reinstall.
Solution 2
I had the same problem. The code was fine, but in the interpreter, I had previoulsy used incorrect xlabel() calls. re-starting the interpreter (close and reopen it) was enough for me, no need to reinstall all python/matplotlib !
Solution 3
I've had this happen when I've previously accidentally plt.title = ''
After that that function is no longer a function. Restarting python kernel or re-importing plt library can fix it.
Not re-installing. Re-IMPORTING.
Solution 4
Try to reload matplotlib by running the following code:
import matplotlib.pyplot as plt
from importlib import reload
plt=reload(plt)
Good Luck
Solution 5
No need to Reinstall any libraries. To overcome the issue, you can just restart the Jupyter kernel. This happens when you set plt.title = 'something'. It overrides the PyPlot functions and make them inaccessible. Restarting the kernel will help you out.
Related videos on Youtube
olben1
Updated on April 12, 2022Comments
-
olben1 about 2 years
When I call
pyplot.title('some string')
it throws the exception,'str' object is not callable'
. I copied the following from the matplotlib online documentation:mu, sigma = 100, 15 x = mu + sigma * np.random.randn(10000) # the histogram of the data n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75) plt.xlabel('Smarts') plt.ylabel('Probability') plt.title('Histogram of IQ') plt.text(60, .025, r'$\mu=100,\ \sigma=15$') plt.axis([40, 160, 0, 0.03]) plt.grid(True) plt.show()
and get
TypeError Traceback (most recent call last) <ipython-input-158-40fe7a831b06> in <module>() 8 plt.xlabel('Smarts') 9 plt.ylabel('Probability') ---> 10 plt.title('Histogram of IQ') 11 plt.text(60, .025, r'$\mu=100,\ \sigma=15$') 12 plt.axis([40, 160, 0, 0.03]) TypeError: 'str' object is not callable
pyplot.suptitle()
works OKI'm using python 2.7.5 and the latest release of matplotlib on an iMac with an I7 processor OSX 10.8 and 8 gig ram and ipython notebook.
Does anyone know what's going on?
-
David Zwicker over 10 yearsIt works for me on OSX 10.8.5 with Python 2.7.5 and matplotlib 1.3.0. How did you install ipython and matplotlib? Is the above code the only code you evoke? Do you run
ipython notebook --pylab
or how do you initialize it? -
tacaswell over 10 yearsI also can not re-produce this. Do you have a
plt.title = 'blah'
someplace in your code above this? -
olben1 over 10 yearsI reinstalled matplotlib (pip uninstall then pip install) and all is OK. Before this ?plt.title told me that plt.title was a string. Now it confirms that plt.title is a function. Not sure I undetstand all of it but it's working. Thanks guys.
-
-
Kickaha about 8 yearsThis should be the accepted answer here... having rewritten the 'title' is the root cause to the probem
-
nanselm2 almost 7 yearsSame problem - I'm working in Jupyter and once I restarted the kernel I was all set.
-
Olivier de Jonge about 5 yearsNo kidding. If you previously accidentally assign a string to function it becomes a string??
-
smishra over 3 yearsI accidentally assigned the title method to a string and that caused this issue. After restarted the kernel it worked.
-
KBurchfiel about 3 yearsThank you! I think I made the same mistake, and restarting the kernel solved my problem also.
-
sk shahriar ahmed raka about 2 yearsthe code is not well organized