Similar presentations:
ЛБ2 Matplotlib_641164bfb0deb278ce971304090ee4b0
1. Пользователь Python
Библиотеки Python. MatplotlibТуктамышева Лилия Мухаммадиевна
2. Matplotlib
Matplotlib - фундаментальная библиотека Python длясоздания статических, анимированных и интерактивных
визуализаций
pip install matplotlib
import matplotlib.pyplot as plt
2
3. Виды графиков в Matplotlib
Линейный графикКонтурный график
Точечная диаграмма
Скрипичный график
Столбчатая диаграмма
Событийный график
Гистограмма
3D линии
Круговая диаграмма
3D точки
Ящик с усами
3D столбцы
Горизонтальные столбцы
3D контуры
Ступенчатый график
3D поверхность
Тепловая карта
Струйные линии
Матричный просмотр
Разностные сетки
4. Шаблон построения графика в Matplotlib
Данныеx = [...] # Ось X значения по горизонтали (время, категории, индексы)
y = [...] # Ось Y значения по вертикали (числа, величины)
Создаем график определенного размера
plt.figure(figsize=(a, b)) # a- ширина, b- высота. Размер в дюймах
(12, 8) - большой отчёт
(15, 10) - презентация
(8, 6) - статья
(4, 3) - иконка
Без параметра - размер по умолчанию (~6x4)
5. Шаблон построения графика в Matplotlib
Выбор типа графика# Линейный
plt.plot(x, y)
Названия некоторых графиков
plt.scatter(x, y)
plt.bar(x, y)
plt.hist(y)
диаграмма рассеяния
столбчатая диаграмма
Гистограмма
plt.boxplot(data)
Ящиковая диаграмма
plt.pie(y, labels=x)
Круговая диаграмма
6. Шаблон построения графика в Matplotlib
Настройка осей и заголовкаplt.xlabel('Ось X') # задает подпись для горизонтальной оси X.
plt.ylabel('Ось Y') # устанавливает подпись для вертикальной оси Y.
plt.title('Название графика') # добавляет заголовок над графиком.
В более общем виде используем следующий синтаксис
plt.title(label, fontsize=None, color=None, loc='center', pad=None)
pad=None в plt.title() - это параметр отступа заголовка от верхнего
края области графика
7. Шаблон построения графика в Matplotlib
Отображениеplt.tight_layout() # автоматически подстраивает отступы и размеры
элементов графика, чтобы избежать перекрытий.
plt.show() # отображает все созданные графики в графическом
интерфейсе. Без этой команды график создается в памяти, но не
показывается на экране.
8. Скачивание графика
Автоматическая загрузка в браузер Google Colabfrom google.colab import files
plt.savefig('график.png', dpi=300, bbox_inches='tight')
files.download('график.png’)
Jupyter Notebook
plt.savefig('график.png', dpi=300, bbox_inches='tight')
9. Дополнительные сведения по типу линии в plot
Библиотека matplotlib позволяет устанавливать такиехарактеристики линии:
- маркер точек, по которым строится линия, его размер;
- стиль (сплошная, пунктирная, отсутствует и т.д.);
- цвет (красный, синий, и т.д.);
- толщина в пикселях.
9
10. Примеры характеристик линии
1011. Стиль маркеров
1112. Стиль линий
1213. Цвета
1314. Пример
› import matplotlib.pyplot as plt› x = [0, 2, 2, 8, 14] # число пропусков
› y = [3.9, 4.8, 5, 3.8, 3] # средний балл
› plt.plot(x, y)
› plt.title("Зависимость среднего балла от числа пропусков")
› plt.xlabel("Ось X")
› plt.ylabel("Ось Y")
› plt.grid(True)
› plt.show()
14
15. Задание 1
› Изменить исходные данные, название графика, стильлинии, стиль маркера, цвет графика (5 разных
графиков с линиями)
15
16. Пример
x = np.linspace(0, 10, 100)# создаёт массив равномерно распределённых чисел с помощью функции np.linsp
ace()
0 — начальное значение диапазона (start);
70 — конечное значение диапазона (stop);
200 —
количество точек (num), которые нужно сгенерировать между начальным и конечн
ым значениями.
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)', color='blue', linewidth=2)
plt.plot(x, y2, label='cos(x)', color='red', linestyle='--')
plt.legend()
plt.title('Тригонометрические функции')
plt.show()
16
17. Пример
# Создаём массив x-значенийx = np.linspace(0.1, 10, 500) # Начинаем с 0.1, чтобы избежать
деления на ноль
# Определяем сложные функции
y1 = (np.sin(x) + np.cos(2 * x)) / np.sqrt(x) # Тригонометрическая
дробь с корнем
y2 = x**2 / (x + 1) - np.tan(x / 3) # Дробно-рациональная + тангенс
y3 = np.sqrt((x**2 + 1) / (x**2 - 1)) # Корень из дроби (работает при
|x| > 1)
y4 = (x * np.sin(1 / x)) / (1 + x**2) # Осцилляции с дробью и
затуханием
17
18. Продолжение примера
# Настраиваем графикplt.figure(figsize=(12, 8))
# Строим графики
plt.plot(x, y1, label=r'$\frac{\sin(x) + \cos(2x)}{\sqrt{x}}$', color='blue',
linewidth=2)
plt.plot(x, y2, label=r'$\frac{x^2}{x+1} - \tan\left(\frac{x}{3}\right)$', color='red',
linewidth=2)
plt.plot(x, y3, label=r'$\sqrt{\frac{x^2 + 1}{x^2 - 1}}$', color='green',
linewidth=2)
plt.plot(x, y4, label=r'$\frac{x \sin(1/x)}{1 + x^2}$', color='purple', linewidth=2)
18
19. Продолжение примера
# Добавляем элементы оформленияplt.xlabel('x', fontsize=12)
plt.ylabel('y', fontsize=12)
plt.title('Графики функций', fontsize=14)
plt.legend(fontsize=10)
plt.grid(True, alpha=0.3)
plt.axhline(0, color='black', linewidth=0.8) # Ось X
plt.axvline(0, color='black', linewidth=0.8) # Ось Y
# Ограничиваем область отображения по Y, чтобы избежать выбросов
plt.ylim(-10, 10)
# Показываем график
plt.tight_layout()
plt.show()
19
20. Задание 2. Нарисовать график функций
2021. Пример. Круговая диаграмма
Загрузим предварительно pandas.Фрагмент исходных данных (по лб1)
21
22. Пример. Круговая диаграмма. Продолжение
import matplotlib.pyplot as plt# Подсчёт выручки по товарам
revenue_by_product = df.groupby('product_sold')['total_revenue'].sum()
# Понадобятся сгруппированные данные из предыдущей лб1
plt.figure(figsize=(8, 8))
plt.pie(revenue_by_product.values, labels=revenue_by_product.index,
autopct='%1.1f%%', startangle=90)
plt.title('Выручка по товарам')
plt.axis('equal')
plt.show()
22
23. Задание 3
Нарисовать круговую диаграмму по своим данным:- Разноцветную как в примере;
- В черно-белом цвете, используя штриховки и разные
оттенки серого;
- Без указания числовых значений на графике.
23
24. Задание 4
› Нарисовать столбчатую диаграмму› Линейный график
› Точечную диаграмму
24
25. Задание 5
Оформить отчет по лб в word по требованиям ЛБ125
programming