- 数据分析--matplotlib 设置时间数据的刻度格式
在绘制图表时, 如果横轴是pd.DateTime格式, 在显示的时候经常会出现尴尬的情况, 常见的情况
- 时间数据是以str格式存储的, 就会出现横轴的刻度密密麻麻, 解决办法 将str转换成pd.DateTime格式
- 只想显示年月日 或者显示time 解决办法如下 使用ax.xaxis.set_major_formatter()
import matplotlib.pyplot as plt
import mpl_toolkits.axisartist as axisartist
import matplotlib.dates
def plot_and_xaixs_datetime(data, save=None, **kwargs):
plt.close('all')
if isinstance(data, dict):
data = [data]
try:
for d in data:
x, y = d['x'], d['y']
del d['x']
del d['y']
plt.plot(x, y, **d)
except Exception as e:
print(data)
print(e)
ax = plt.gca()
if 'fmt_time' in kwargs.keys():
xfmt = matplotlib.dates.DateFormatter(**kwargs['fmt_time'])
ax.xaxis.set_major_formatter(xfmt)
if 'ylabel' in kwargs.keys():
plt.ylabel(kwargs['ylabel'])
if 'xlabel' in kwargs.keys():
plt.xlabel(kwargs['xlabel'])
if 'title' in kwargs.keys():
plt.title(kwargs['title'])
# plt.xticks(fontsize=8)
if save:
plt.savefig(save, dpi=200)



