我试图使用matplotbib绘制时间序列数据图,问题是观察结果太多,因此标签有重叠并且不适合大小的数字。
我正在考虑三种解决方案,一种是缩小观察的标签大小,一种是将文本转换为垂直顺序或倾斜方式,最后只是指定第一个和最后一个带有点之间的点的观察。代码是为了证明我的观点。
我想知道有人可以提供帮助吗?谢谢
from datetime import date
import numpy as np
from pandas import *
import matplotlib.pyplot as plt
N = 100
data = np.array(np.random.randn(N))
time_index = date_range(date.today(), periods = len(data))
plt.plot(time_index, data)
答案 0 :(得分:2)
对于你的简单情节,你可以做
plt.xticks(rotation=90).
或者,您可以使用
指定要显示的刻度plt.xticks(<certain range of values>)
plt.xticklabels(<labels for those values>)
编辑:
就个人而言,我会改用pyplot的面向对象方式。
f = plt.figure()
ax = f.add_subplot(111)
ax.plot(<stuff>)
ax.tick_params(axis='x', labelsize='8')
plt.setp( ax.xaxis.get_majorticklabels(), rotation=90 )
# OR
xlabels = ax.get_xticklabels()
for label in xlabels:
label.set_rotation(90)
plt.show()