Как Построить График в Matplotlib с Циклом For? Практическое Руководство с Примерами

Matplotlib – мощная библиотека Python для визуализации данных. Особенно полезным становится применение циклов for для автоматизации создания однотипных графиков или их элементов. Эта статья предоставляет практическое руководство с примерами использования циклов for для построения графиков в Matplotlib, охватывая базовые и продвинутые техники.

Основы Matplotlib и Циклов For в Python

Краткий обзор Matplotlib: зачем он нужен и как его установить

Matplotlib позволяет создавать разнообразные графики: линейные, столбчатые, точечные, гистограммы и многие другие. Для установки используйте pip install matplotlib.

Основы работы с циклами for в Python для итерации данных

Циклы for позволяют перебирать элементы последовательности (списка, массива, DataFrame) и выполнять определенные действия для каждого элемента. Это особенно удобно для построения серий графиков или добавления нескольких элементов на один график.

Построение Простых Графиков с Циклом For

Создание нескольких линий на одном графике в цикле for

Этот пример демонстрирует построение нескольких синусоид с разными частотами на одном графике:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 100)
frequencies = [1, 2, 3]

plt.figure(figsize=(8, 6))
for freq in frequencies:
    y = np.sin(freq * x)
    plt.plot(x, y, label=f'sin({freq}x)')

plt.title('Синусоиды с разными частотами')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.grid(True)
plt.show()

Настройка цветов, стилей линий и маркеров в цикле

Можно настроить внешний вид каждой линии, используя параметры color, linestyle и marker:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 50)
colors = ['red', 'green', 'blue']
linestyles = ['-', '--', ':']

plt.figure(figsize=(8, 6))
for i in range(3):
    y = i * x
    plt.plot(x, y, color=colors[i], linestyle=linestyles[i], marker='o', label=f'{colors[i]} line')

plt.title('Линии с разным стилем')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.grid(True)
plt.show()

Создание Подграфиков (Subplots) с Помощью Цикла For

Построение сетки подграфиков с использованием цикла for

Для создания нескольких графиков в одной фигуре используйте plt.subplots() и цикл for:

import matplotlib.pyplot as plt
import numpy as np

fig, axes = plt.subplots(2, 2, figsize=(10, 8))

x = np.linspace(0, 5, 100)
functions = [np.sin, np.cos, np.tan, np.exp]
titles = ['sin(x)', 'cos(x)', 'tan(x)', 'exp(x)']

for i, ax in enumerate(axes.flatten()):
    ax.plot(x, functions[i](x))
    ax.set_title(titles[i])
    ax.set_xlabel('x')
    ax.set_ylabel('y')
    ax.grid(True)

plt.tight_layout()
plt.show()

Настройка общих заголовков и меток осей для подграфиков

fig.suptitle() позволяет добавить общий заголовок для всей фигуры.

import matplotlib.pyplot as plt
import numpy as np

fig, axes = plt.subplots(2, 2, figsize=(10, 8))
fig.suptitle('Примеры функций', fontsize=16)

x = np.linspace(0, 5, 100)
functions = [np.sin, np.cos, np.tan, np.exp]
titles = ['sin(x)', 'cos(x)', 'tan(x)', 'exp(x)']

for i, ax in enumerate(axes.flatten()):
    ax.plot(x, functions[i](x))
    ax.set_title(titles[i])
    ax.set_xlabel('x')
    ax.set_ylabel('y')
    ax.grid(True)

plt.tight_layout(rect=[0, 0.03, 1, 0.95]) # Adjust layout to make room for suptitle
plt.show()
Реклама

Работа с Данными из Pandas DataFrame в Цикле For

Итерация по столбцам DataFrame и построение графиков для каждого столбца

Пример использования pandas для итерации по столбцам и создания графиков:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# Создаем DataFrame (замените реальными данными)
data = {'A': np.random.rand(100), 'B': np.random.rand(100), 'C': np.random.rand(100)}
df = pd.DataFrame(data)

plt.figure(figsize=(12, 4))
for column in df.columns:
    plt.plot(df.index, df[column], label=column)

plt.title('Графики столбцов DataFrame')
plt.xlabel('Индекс')
plt.ylabel('Значение')
plt.legend()
plt.grid(True)
plt.show()

Визуализация данных с разными типами графиков (линейные, столбчатые, точечные) в цикле

Можно строить различные типы графиков в цикле, в зависимости от данных:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# Создаем DataFrame (замените реальными данными)
data = {'Category': ['A', 'B', 'C'], 'Value': [10, 15, 7], 'Value2': [12,8,11]}
df = pd.DataFrame(data)

fig, axes = plt.subplots(1, 2, figsize=(12, 4))

axes[0].bar(df['Category'], df['Value'], label='Value')
axes[0].set_title('Столбчатая диаграмма')

axes[1].scatter(df['Category'], df['Value2'], label='Value2')
axes[1].set_title('Точечная диаграмма')

plt.tight_layout()
plt.show()

Продвинутые Приемы: Объектно-Ориентированный API Matplotlib и Циклы

Использование объектно-ориентированного подхода для гибкой настройки графиков в цикле

Объектно-ориентированный API дает больший контроль над графиками:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
functions = [np.sin, np.cos]
labels = ['sin(x)', 'cos(x)']

fig, ax = plt.subplots(figsize=(8, 6))

for func, label in zip(functions, labels):
    ax.plot(x, func(x), label=label)

ax.set_title('Графики sin(x) и cos(x)')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.legend()
ax.grid(True)

plt.show()

Создание сложных визуализаций с несколькими осями и разными типами данных

Matplotlib позволяет создавать графики с несколькими осями, что полезно для отображения данных с разными масштабами. Цикл for упрощает эту задачу.

Заключение

Использование циклов for значительно упрощает создание графиков в Matplotlib, особенно при работе с большим объемом данных или при необходимости построения однотипных графиков. Приведенные примеры демонстрируют основные приемы и подходы, которые можно адаптировать для решения различных задач визуализации.


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