2013-06-28 3 views
1

Я пытался построить график данных временных рядов с использованием matplotbib, проблема в том, что слишком много наблюдений, поэтому метки имеют перекрытие и не подходят хорошо в пределах размера ,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) 

ответ

2

Для вашего простого сюжета, вы могли бы сделать

plt.xticks(rotation=90). 

В качестве альтернативы, вы можете указать, какие клещи вы хотите отобразить с

plt.xticks(<certain range of values>) 
plt.xticklabels(<labels for those values>) 

Edit:

Лично Я бы переключился на объектно-ориентированный способ пипота.

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() 
+0

спасибо, как уменьшить размер символов этих этикеток также? – Jin

+0

Проверьте изменения. – wflynny

+0

Большое спасибо, Билл – Jin