Форум сайта python.su
22
привет
есть такой скрипт
# 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!"
[ [ (USD Валюта, (курс, НД), дата), (JPY Валюта, (курс, НД), дата), (EUR Валюта, (курс, НД), дата), ] [ ... ] ]
Прикреплённый файлы:
script.zip (1,5 KБ)
Офлайн
253
Поиграйте с xticks https://sites.google.com/site/scigraphs/tutorial
Офлайн
22
все равно не понял.
совсем сократил код
import matplotlib.pyplot, random # точки по Х, всего 366 точек. каждая точка это день в году # 1-1.1.11, 2-2.1.11 ....365-31.12.2011 xAxis = range(1, 366) # точки по У yAxis = range(10, 71)*6 yAxis.pop() # удаляем последнее значение чтобы было 365 значений random.shuffle(yAxis) matplotlib.pyplot.plot(xAxis, yAxis) matplotlib.pyplot.show()
Офлайн