I'm attempting to label the x-axis of my graph in binary instead of float values in Python 2.7. I'm attempting to use FormatStrFormatter('%b') which according to the documentation provided by the Python Software Foundation should work. I'd also like all the binary strings to be the same length of characters. I've also consulted this link.
The error I'm getting is:
ValueError: unsupported format character 'b' (0x62) at index 1
I've tried to do it like:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import FormatStrFormatter
fig, ax = plt.subplots()
ax.yaxis.set_major_formatter(FormatStrFormatter('%b'))
ax.yaxis.set_ticks(np.arange(0, 110, 10))
x = np.arange(1, 10, 0.1)
plt.plot(x, x**2)
plt.show()

'%b' % 12throws an error in python 3.6 for me whereas'%x'and'%o'don't. Are you sure it's part of the % format spec?%bspec because thestr.__mod__function doesn't. Look at the last 2 lines of your error:return self.fmt % x ValueError: unsupported format character 'b' (0x62) at index 1