1

我试图使用 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)
4

1 回答 1

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()
于 2013-06-28T17:34:09.823 回答