I have used Pandas's value_counts function to provide counts of unique values:
CountStatus = pd.value_counts(df['scstatus'].values, sort=True)
Output:
200    133809
304      7217
404      2176
302       740
500       159
403         4
301         1
dtype: int64
I now want to plot these values using matplotlib i.e "plt.barh(CountStatus)", however I keep getting the error: ValueError: incompatible sizes: argument 'width' must be length 7 or scalar.
I'm guessing this may have something to do with the left hand column being an index column. Is there a way around this to obtain a horizontal bar chart? Do I need to convert it or specify something else in the function?
Thanks
pandas.Series.value_counts is a Series methodpandas.Series.plot with kind='bar' or kind='barh'
import seaborn as sns
# test data, loads a pandas dataframe
df = sns.load_dataset('planets')
# display(df.head(3))
            method  number  orbital_period  mass  distance  year
0  Radial Velocity       1         269.300  7.10     77.40  2006
1  Radial Velocity       1         874.774  2.21     56.95  2008
2  Radial Velocity       1         763.000  2.60     19.84  2011
# plot value_counts of Series
ax = df.method.value_counts().plot(kind='barh')
ax.set_xscale('log')

I think you can use barh:
CountStatus.plot.barh()
Sample:
CountStatus = pd.value_counts(df['scstatus'].values, sort=True)
print CountStatus
AAC    8
AA     7
ABB    4
dtype: int64
CountStatus.plot.barh()

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