есть такой скрипт
# coding: utf-8 from datetime import * from numpy import * import matplotlib.pyplot as plt import matplotlib.ticker as ticker import pylab import os Inform = eval(open(os.getcwd()+'\\in.txt').read()) need_curr = [u"USD", u"JPY",u"EUR"] yAxis = [] # Для каждой валюты: for i in range(0, len(need_curr)): # Добавляем в массив список со значениями для каждого дня yAxis.append([Inform[x][i][1][0] for x in range(0, len(Inform))]) # Определяем массив, который будет хранить значения по оси абсцисс xAxis = range(1, len(Inform)+1) # Для каждой из валют for i in range(0, len(yAxis)): # Строим свой график и подписываем его на легенде plt.plot( xAxis, yAxis[i], label=(str(Inform[0][i][1][1])+" "+Inform[0][i][0]), ) # Указываем подписи к графику и выводим легенду plt.xlabel('time') plt.ylabel('rate') plt.title('Currently exchange') plt.legend(loc = "best") # Сохраняем график в формате pdf plt.savefig('grafic.pdf') # Закрываем график, во избежание изменений plt.close() print "Done!"
который выводит график изменений курса валют.
данные для курса берет из файла in.txt
файл сохранене repr'om. поэтому читаем через eval.
структура списка такова:
[ [ (USD Валюта, (курс, НД), дата), (JPY Валюта, (курс, НД), дата), (EUR Валюта, (курс, НД), дата), ] [ ... ] ]
необходимо чтобы по оси Х было только два значения. начало и конец месяца
спасибо