我有这样的数据。月份列是字符串类型。我想在201501到201505之间绘制一个条形图,x轴是月份,y轴是total_gmv。X格式类似于2015年1月,2015年2月。那么,我如何使用python实现它呢?谢谢。
month total_gmv
201501 NaN
201502 2.824294e+09
201503 7.742665e+09
201504 2.024132e+10
201505 6.705012e+10发布于 2016-12-21 08:35:01
以前的答复有一些线索,但并没有给出详尽的答案。您必须设置自定义xtick标签,并将其旋转如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(
{'month': ['201501', '201502', '201503', '201504', '201505'],
'total_gmv': [np.nan, 2.824294e+09, 7.742665e+09, 2.024132e+10, 6.705012e+10]})
df['month'] = pd.to_datetime(df['month'], format='%Y%m', errors='ignore')
ax = df.plot(kind='bar')
ax.set_xticklabels(df['month'].dt.strftime('%b, %Y'))
plt.xticks(rotation=0)
plt.show()

发布于 2016-12-21 03:44:43
您应该能够强制月份成为时间戳,然后将其设置为索引并绘制它。
df['month'] = pd.to_datetime(df.month)
ax = df.set_index('month').plot(kind='bar')你可能得改变日期格式。
import matplotlib.dates as mdates
ax.xaxis.set_major_formatter= mdates.DateFormatter('%b, %Y')检查在此索取更多
发布于 2016-12-21 03:52:50
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame(
{'month': ['201501', '201502', '201503', '201504', '201505'],
'total_gmv': [np.nan, 2.824294e+09, 7.742665e+09, 2.024132e+10, 6.705012e+10]})
df['month'] = pd.to_datetime(df['month'], format='%Y%m').dt.month
df = df.set_index('month')
print df
df.plot(kind='bar')
plt.show()结果:
total_gmv
month
1 NaN
2 2.824294e+09
3 7.742665e+09
4 2.024132e+10
5 6.705012e+10

https://stackoverflow.com/questions/41254470
复制相似问题