07

Построение графиков

Для построения графиков чаще всего используется matplotlib.pyplot. Больше информации можно найти по этим ссылкам:

Построить график достаточно просто:

In [2]:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

x = np.linspace(-1,1,100) # Создаем массив из ста точек на промежутке (-1;1)
y = x**3
plt.plot(x,y);

Как вы можете заметить построеный график хорош всем, кромо того обстоятельства что он нарушает все правила оформления графиков для лабораторных работ. Постораемся оформить его. Следующая иллюстрация поможет нам узнать как называются элементы изображения:

Используя поиск по сайту matplotlib.org можно подробно узнать как настроить тот или иной элемент изображения. А мы приведем краткое описание полезных функции:

In [3]:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.size'] = 16 # Управление стилем, в данном случаем - размером шрифта 
 # Создаем фигуру
plt.figure(figsize=(7,7))

# Подписываем оси и график
plt.title(r"Это название  графика  $y = x^3$ - да, можно использовать LaTeX:")
plt.ylabel("Это ось Y")
plt.xlabel(r"Это ось X, $F(x) = \int f(x) dx + C$")



# Добавляем данные
x = np.linspace(-1,1,100)
y = x**3
plt.plot(x,y, label="Синия линия")

# Еще данные
x2 = x[::10]
y2 = np.sin(x2)
plt.plot(x2,y2, 'r^', label='Красные треугольники')
# 'r^' - задает стиль линии - красные (red) треугольники (^), подробнее в документации

# Данные с ошибками
mu = np.sin(x2)
sigma = np.abs(mu)**0.5
y2 = np.random.normal(mu, sigma)
# Можно рисовать ошибки
plt.errorbar(x2,y2, yerr=sigma, xerr=0.1, fmt='.', label='Кресты') 

# Активируем сетку
plt.grid(b=True, which='major', axis='both', alpha=1)
plt.grid(b=True, which='minor', axis='both', alpha=0.5)

# Активируем легенду графика
plt.legend()
# Внимание, запускаете вашу программу как сценарий, то что бы показать график
# Используйте эту команду
# plt.show()
# Сохраняем изображение в текущую директорию
plt.savefig('example.png')
In [10]:
# Логарифмический масштаб по оси x (аналогично для y)
plt.xscale('log')
plt.yscale('log')
# Сетка
plt.grid(True)
# Добавляем данные
x = np.linspace(0,100,100)
y = x**3
plt.plot(x,y,"k--", label="Синия линия") # "k--" --- черная прерывистая линия
Out[10]:
[<matplotlib.lines.Line2D at 0x7f1697b31828>]
In [ ]:
 
^Наверх
Вниз