Найти - Пользователи
Полная версия: редактирование подписей matplotlib
Начало » Python для новичков » редактирование подписей matplotlib
1
ilnur
привет

есть такой скрипт
# 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 Валюта, (курс, НД), дата),
    ]
    [
        ...
    ]
]
данные с 1.1.2011 года по 2.2.2011 года.
необходимо чтобы по оси Х было только два значения. начало и конец месяца

спасибо
doza_and
Поиграйте с xticks https://sites.google.com/site/scigraphs/tutorial
ilnur
все равно не понял.
совсем сократил код
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()

мне надо чтобы начало каждого месяца отображался по оси х, и чтобы его метка, черточка на оси Х, была больше чем у остальных.

спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB