I'm working with a counter from collections import Counter
and I want to print its values using matplotlib.pylot
.
When I try to do it using:
plt.bar(range(len(cnt)), cnt.values(), align='center')
plt.xticks(range(len(cnt)), cnt.keys())
plt.show()
I get the following error:
ValueError: matplotlib display text must have all code points < 128 or use Unicode strings
That's why I'm trying to convert the Counter dictionary keys to Unicode.
If you're using Python 2.7, you can use a dict comprehension:
unidict = {k.decode('utf8'): v.decode('utf8') for k, v in strdict.items()}
For older versions:
unidict = dict((k.decode('utf8'), v.decode('utf8')) for k, v in strdict.items())
(This assumes your strings are in UTF-8, of course.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With