English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
pip3 устанавливается:
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
Системы Linux также могут использовать Linux пакетный менеджер для установки:
Debian / Ubuntu:
sudo apt-get install python-matplotlib
Fedora / Redhat:sudo yum install python-matplotlib
После установки вы можете использовать python -m pip list Эта команда используется для проверки того, был ли установлен модуль matplotlib.
$ pip3 list | grep matplotlib matplotlib 3.3.0
import numpy as np from matplotlib import pyplot as plt x = np.arange(1, 11) y = 2 * x + 5 plt.title("Matplotlib demo") plt.xlabel("заголовок оси X") plt.ylabel("заголовок оси Y") plt.plot(x, y) plt.show()
В данном примере функция np.arange() создает значения на оси X. Соответствующие значения на оси Y хранятся в другом объекте массива y. Эти значения рисуются с помощью функции plot() из подмодуля pyplot пакета matplotlib.
График отображается с помощью функции show().
Matplotlib по умолчанию не поддерживает китайский язык, мы можем решить эту проблему с помощью следующих простых методов.
Здесь мы используем Source Han Sans, Source Han Sans - это открытое шрифтовое семейство, совместно разработанное Adobe и Google.
Официальный веб-сайт: https://source.typekit.com/source-han-serif/cn/
Адрес GitHub: https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese
Открыв ссылку, выберите один из них:
Вы можете загрузить OTF шрифт, например SourceHanSansSC-Bold.otf, и поместить этот файл в текущий файл выполнения кода:
Файл SourceHanSansSC-Bold.otf должен быть放在 текущем файле выполнения кода:
import numpy as np from matplotlib import pyplot as plt import matplotlib # fname - это путь к вашему библиотеке шрифтов, обратите внимание на путь к шрифту SourceHanSansSC-Bold.otf zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf") x = np.arange(1, 11) y = 2 * x + 5 plt.title("Стойка товаров - Тест", fontproperties=zhfont1) # fontproperties устанавливает отображение китайских символов, fontsize устанавливает размер шрифта plt.xlabel("x ось", fontproperties=zhfont1) plt.ylabel("y ось", fontproperties=zhfont1) plt.plot(x, y) plt.show()
Кроме того, мы можем использовать системные шрифты:
from matplotlib import pyplot as plt import matplotlib a = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist]) for i in a: print(i)
Выведите все зарегистрированные имена из вашего ttflist font_manager, чтобы найти подходящий шрифт с китайскими символами, например: STFangsong (Фан Сун), и добавьте следующий код:
plt.rcParams['font.family']=['STFangsong']
Вместо линейной диаграммы можно отобразить отдельные значения, добавив строку формата к функции plot(). Można użyć następujących znaków formatujących.
символ | описание |
'-' | стиль сплошной линии |
'--' | стиль короткой черты |
'-.' | стиль точки и черты |
':' | стиль пунктирной линии |
'.' | метка с точкой |
',' | метка с пикселем |
'o' | метка с кругом |
'v' | перевернутый треугольник |
'^' | прямой треугольник |
'<' | левый треугольник |
'>' | правый треугольник |
'1' | стрелка вниз |
'2' | стрелка вверх |
'3' | стрелка влево |
'4' | стрелка вправо |
's' | метка с квадратом |
'p' | пятиугольник |
'*' | метка с звездочкой |
'h' | шестигранник 1 |
'H' | шестигранник 2 |
'+' | метка с плюсом |
'x' | метка X |
'D' | ромб |
'd' | узкий ромб |
'|' | вертикальная линия |
'_' | горизонтальная линия |
Вот сокращения цветов:
символ | цвет |
'b' | синий |
'g' | зеленый |
'r' | красный |
'c' | голубой |
'm' | розовый |
'y' | желтый |
'k' | черный |
'w' | белый |
Чтобы отобразить круг для обозначения точки, а не линию, как в предыдущем примере, используйте строку формата ob в функции plot().
import numpy as np from matplotlib import pyplot as plt x = np.arange(1, 11) y = 2 * x + 5 plt.title("Matplotlib demo") plt.xlabel("заголовок оси X") plt.ylabel("заголовок оси Y") plt.plot(x, y, "ob") plt.show()
Результат выполнения показан на рисунке ниже:
Данный пример использует matplotlib для генерации графика синусоиды.
import numpy as np import matplotlib.pyplot as plt # Рассчитать координаты x и y точек на кривой синуса x = np.arange(0, 3 * np.pi, 0.1) y = np.sin(x) plt.title("форма волны синуса") # Использовать matplotlib для рисования точек plt.plot(x, y) plt.show()
Результат выполнения показан на рисунке ниже:
Функция subplot() позволяет рисовать разные вещи на одном графике.
Данный пример рисует значения синуса и косинуса:
import numpy as np import matplotlib.pyplot as plt # Рассчитать координаты x и y точек на кривых синуса и косинуса x = np.arange(0, 3 * np.pi, 0.1) y_sin = np.sin(x) y_cos = np.cos(x) # Создать сетку subplot, высота 2, ширина 1 # Активировать первый subplot plt.subplot(2, 1, 1) # Нанести первый график plt.plot(x, y_sin) plt.title('Синус') # Активировать второй subplot и нарисовать второе изображение plt.subplot(2, 1, 2) plt.plot(x, y_cos) plt.title('Косинус') # Показывать изображение plt.show()
Результат выполнения показан на рисунке ниже:
Подмодуль pyplot предоставляет функцию bar() для генерации гистограмм.
Данный пример генерирует гистограмму для двух массивов x и y.
from matplotlib import pyplot as plt x = [5, 8, 10] y = [12, 16, 6] x2 = [6, 9, 11] y2 = [6, 15, 7] plt.bar(x, y, align='центр') plt.bar(x2, y2, color='зелёный', align='центр') plt.title('Гистограмма') plt.ylabel('Ось Y') plt.xlabel('Ось X') plt.show()
Результат выполнения показан на рисунке ниже:
Функция numpy.histogram() представляет графическое изображение частотного распределения данных. Прямоугольники с равной шириной, соответствующие интервалам классов, называются bin, переменная height соответствует частоте.
Функция numpy.histogram() принимает в качестве параметров вводимые массивы и bin. Конsecutive элементы массива bin используются в качестве границ каждого bin.
import numpy as np a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]) np.histogram(a, bins = [0,20,40,60,80,100]) hist, bins = np.histogram(a, bins = [0,20,40,60,80,100]) print(hist) print(bins)
Результат выполнения:
[3 4 5 2 1] [0 20 40 60 80 100]
Matplotlib может преобразовать числовое представление гистограммы в графическое. Функция plt() подмодуля pyplot преобразует массив данных и массив bin в гистограмму.
from matplotlib import pyplot as plt import numpy as np a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]) plt.hist(a, bins = [0,20,40,60,80,100]) plt.title("гистограмма") plt.show()
Результат выполнения показан на рисунке ниже:
Более подробная информация о Matplotlib:
Руководство пользователя Частые вопросы и ответы Снимок экрана