Strange error with matplotlib axes labels Strange error with matplotlib axes labels python python

Strange error with matplotlib axes labels


I had this same issue when working in iPython notebook.

I think it can be re-created as follows:

import matplotlib.pyplot as pltplt.ylabel = 'somestring' # oh wait this isn't the right syntax.... plt.ylabel('somestring') # now this breaks because the function has been turned into a string

Re-starting the kernel or re-importing the libraries restores plt.ylabel to a function.


EDIT: This code works fine for clean runs, but you might have changed ylabel, in which case restarting should fix it, as @wolfins answered (check that answer).

I'm afraid I can't tell you what's going wrong because it works fine here. The below code runs without error and shows the plot with correct label.

from matplotlib import pyplot, pylaba = [1, 2, 3, 4, 5]b = [2, 3, 2, 3, 2]pyplot.plot(a, b)pylab.xlabel("Time")pylab.ylabel("Speed")pyplot.show()

If that doesn't work for you, perhaps you can try using figure and axes objects, like this

from matplotlib.pyplot import subplots, showa = [1, 2, 3, 4, 5]b = [2, 3, 2, 3, 2]fig, ax = subplots()ax.plot(a, b)ax.set_xlabel("Time")ax.set_ylabel("Speed")show()

Doesn't solve the underlying problem (which is hard since I can't reproduce it), but maybe it will achieve your purpose at least.


I just had this happen to me.It seems that what I did was assign a string to xlab and ylab like:

plt.xlab = 'string'plt.ylab = 'string'

This broke the xlab and ylab such that you cannot call them anymore, since they are now in fact strings, not functions.

Similarly, I was using Jupyter, and I had to kill Jupyter and re-run it from scratch to fix this problem.

Oddly, re-importing the libraries while the kernal remained running did NOT work.