Построение графиков в Python. Библиотека Matplotlib и ее руссификация

Matplotlib — библиотека Python для отображения двумерных и трехмерных графиков.

Установить Matplotlib в Ubuntu можно следующей командой:


sudo pip3 install matplotlib

В Windows применяет аналогичная команда, только без sudo.

Matplotlib по умолчанию не умеет отображать надписи на русском языке. Например, на следующем изображении вместо русских подписей к осям отображаются прямоугольники:

matplotlib-bad-russian-label

Чтобы русские надписи отображались правильно, необходимо в скрипт добавить следующие строчки:

from matplotlib import rc

font = {
    'family': 'Arial',
    'weight': 'normal',
    'size': 12,
}
rc('font', **font)

Этот код устанавливает для всех надписей шрифт Arial размером 12.

Чтобы шрифт Arial присутствовал в Ubuntu, следует установить пакет шрифтов Windows следующей командой:


sudo apt install msttcorefonts

Ниже приведен пример скрипта, отображающего график синусоидального напряжения 220 В 50 Гц.

from math import *
from matplotlib import pyplot
from matplotlib import rc

font = {
    'family': 'Arial',
    'weight': 'normal',
    'size': 12,
}
rc('font', **font)

Um = 220 * 2 ** 0.5  # Амплитуда сигнала
F = 50  # Частота сигнала
P = 3  # Количество периодов сигнала
N = 100  # Количество точек на период
Fd = F * N  # Частота дискретизации
Td = 1 / Fd  # Период дискретизации

t = [n * Td for n in range(P * N)]  # Время
u = [Um * sin(2 * pi * F * t) for t in t]  # Сигнал

pyplot.ylabel('Напряжение, В')
pyplot.xlabel('Время, с')
pyplot.plot(t, u)
pyplot.grid()
pyplot.show()

Получается следующий красивый график:

matplotlib-220v-50hz

Реклама

Автор

Дмитрий Бравиков

Инженер. Электронщик. Программист.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.