Matplotlib条形图上的日期时间索引值

我在获取以下代码以正确显示条形图时遇到麻烦。该图线很细,只有放大后才能看到,即使不清楚。我试图用plt.bar的width选项进行控制,但是它什么也没做(例如,尝试过0.1、1、365)。

任何关于我在做什么错的指针将不胜感激。

非常感谢

import pandas as pd
import numpy as np
import matplotlib.pylab as plt
import matplotlib.dates as mdates

plt.close('all')

mydateparser2 = lambda x: pd.datetime.strptime(x, "%m/%d/%Y")
colnames2=['Date','Net sales', 'Cost of sales']
df2 = pd.read_csv(r'account-test.csv', parse_dates = ['Date'] , date_parser = mydateparser2, index_col='Date')
df2= df2.filter(items=colnames2)
df2 = df2.sort_values('Date')

print (df2.info())
print (df2)

fig = plt.figure()

plt.bar(df2.index.values, df2['Net sales'], color='red', label='Net sales'  )
plt.ylim(500000,2800000)
plt.show()
plt.legend(loc=4)

结果输出(以显示数据类型)

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 15 entries, 2005-12-31 to 2019-12-31
Data columns (total 2 columns):
Net sales        15 non-null int64
Cost of sales    15 non-null int64
dtypes: int64(2)
memory usage: 360.0 bytes
None
            Net sales  Cost of sales
Date                                
2005-12-31    1161400         907200
2006-12-31    1193100         928300
2007-12-31    1171100         888100
2008-12-31    1324900        1035700
2009-12-31    1108300         859800
2010-12-31    1173600         891000
2011-12-31    1392400        1050300
2012-12-31    1578200        1171500
2013-12-31    1678200        1224200
2014-12-31    1855500        1346700
2015-12-31    1861200        1328400
2016-12-31    2004300        1439700
2017-12-31    1973300        1421500
2018-12-31    2189100        1608300
2019-12-31    2355700        1715300
广晃

也许您正在尝试在小图上绘制太多条形图。尝试fig = plt.figure(figsize=(12,6)有更大的情节。你也可以传递width=0.9给你的bar命令:

fig, ax = plt.subplots(figsize=(12,6))
df.plot.bar(y='Net sales', width=0.9, ax=ax)  # modify width to your liking

输出:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章