Рубрики
Без рубрики

Как изменить фон графика в Matplotlib

В этом уроке мы рассмотрим несколько примеров того, как изменить фон графика (фон рисунка и фон осей) в Matplotlib с помощью Python.

Автор оригинала: Dan Nelson.

Как изменить фон графика в Matplotlib

Вступление

Matplotlib – одна из наиболее широко используемых библиотек визуализации данных в Python. От простых до сложных визуализаций-это библиотека для большинства.

В этом уроке мы рассмотрим, как изменить фон сюжета в Matplotlib .

Импорт данных и библиотек

Давайте сначала импортируем необходимые библиотеки. Очевидно, нам понадобится Matplotlib, и мы будем использовать Pandas для чтения данных:

import matplotlib.pyplot as plt
import pandas as pd

В частности, мы будем использовать набор данных погоды в Сиэтле :

weather_data = pd.read_csv("seattleWeather.csv")
print(weather_data.head())
         DATE  PRCP  TMAX  TMIN  RAIN
0  1948-01-01  0.47    51    42  True
1  1948-01-02  0.59    45    36  True
2  1948-01-03  0.42    45    35  True
3  1948-01-04  0.31    45    34  True
4  1948-01-05  0.17    45    32  True

Создание сюжета

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

PRCP = weather_data['PRCP']
TMAX = weather_data['TMAX']
TMIN = weather_data['TMIN']

Теперь мы построим диаграмму рассеяния между минимальной температурой и осадками и show() it с помощью Matplotlib PyPlot:

plt.scatter(TMIN, PRCP)
plt.show()
matplotlib scatter plot

График, который мы создали, можно интерпретировать, но он выглядит немного простым. Давайте попробуем настроить его. Мы хотим настроить фон нашего сюжета, используя несколько различных методов.

Изменение фона графика в Matplotlib

Теперь давайте продолжим и изменим фон этого сюжета. Мы можем сделать это с помощью двух различных подходов. Мы можем изменить цвет лица , который в данный момент установлен на белый . Или мы можем ввести изображение с помощью imshow() .

Изменение фона осей в Matplotlib

Давайте сначала изменим цвет лица . Это можно сделать либо с помощью функции set () , передав аргумент face и его новое значение, либо с помощью специальной функции set_facecolor() :

ax = plt.axes()
ax.set_facecolor("orange")
# OR
ax.set(facecolor = "orange")

plt.scatter(TMIN, PRCP)
plt.show()
изменение цвета фона осей matplotlib

Любой из этих подходов дает один и тот же результат, поскольку они оба вызывают одну и ту же функцию под капотом.

Изменение фона рисунка в Matplotlib

Если вы хотите установить фон для фигуры и хотите, чтобы оси были прозрачными, это можно сделать с помощью аргумента set_alpha() при создании фигуры. Давайте создадим фигуру и объект axes. Конечно, вы также можете использовать функцию set() и передать вместо нее атрибут alpha .

Цвет всей фигуры будет синим, и мы изначально установим alpha объекта axes на 1.0 , что означает полностью непрозрачный. Мы окрашиваем объект оси в оранжевый цвет, давая нам оранжевый фон внутри синей фигуры:

fig = plt.figure()
fig.patch.set_facecolor('blue')
fig.patch.set_alpha(0.6)

ax = fig.add_subplot(111)
ax.patch.set_facecolor('orange')
ax.patch.set_alpha(1.0)

plt.scatter(TMIN, PRCP)
plt.show()
изменить рисунок фона matplotlib

Теперь давайте посмотрим, что произойдет, когда мы скорректируем альфа axessubplot до 0.0 :

fig = plt.figure()
fig.patch.set_facecolor('blue')
fig.patch.set_alpha(0.6)

ax = fig.add_subplot(111)
ax.patch.set_facecolor('orange')
ax.patch.set_alpha(0.0)

plt.scatter(TMIN, PRCP)
plt.show()
изменение осей фона matplotlib внутри рисунка

Обратите внимание, что фон самого сюжета теперь прозрачен.

Добавить изображение на фон графика в Matplotlib

Если вы хотите использовать изображение в качестве фона для графика, это можно сделать с помощью функции Pyplot imread () . Эта функция загружает изображение в Matplotlib, которое может быть отображено с помощью функции imshow() .

Чтобы построить график поверх изображения, необходимо указать его экстент. По умолчанию Matplotlib использует верхний левый угол изображения в качестве источника изображения. Мы можем дать список точек функции imshow () , указав, какая область изображения должна быть отображена. В сочетании с подзаголовками поверх изображения можно вставить другой сюжет.

Давайте используем изображение дождя в качестве фона для нашего сюжета:

img = plt.imread("rain.jpg")
fig, ax = plt.subplots()
ax.imshow(img, extent=[-5, 80, -5, 30])
ax.scatter(TMIN, PRCP, color="#ebb734")
plt.show()
добавление изображения в фон matplotlib

Аргумент extent принимает дополнительные аргументы в следующем порядке: horizontal_min , horizontal_max , vertical_min , vertical_max ).

Здесь мы прочитали изображение, обрезали его и показали на осях с помощью imshow() . Затем мы построили точечную диаграмму с другим цветом и показали график.

Вывод

В этом уроке мы рассмотрели несколько способов изменения фона сюжета с помощью Python и Matplotlib.

Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей связкой книг по Визуализации данных в Python :

Визуализация данных в Python

Ограниченная временная скидка: 2-за-1, экономия 50%!

✅ 30-дневная гарантия возврата денег без вопросов

✅ От новичка до продвинутого

✅ Регулярно обновляется бесплатно (последнее обновление в апреле 2021 года)

✅ Обновлено с бонусными ресурсами и руководствами

Визуализация данных в Python с Matplotlib и Pandas – это книга, предназначенная для того, чтобы познакомить абсолютных новичков с Pandas и Matplotlib, обладающих базовыми знаниями Python, и позволить им создать прочную основу для продвинутой работы с библиотеками тезисов- от простых сюжетов до анимированных 3D-сюжетов с интерактивными кнопками.

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

Визуализация данных в Python , книга для начинающих и промежуточных разработчиков Python, проведет вас через простые манипуляции с данными с Пандами, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет вам, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. Более конкретно, в течение 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.

Он служит уникальным практическим руководством по визуализации данных, в изобилии инструментов, которые вы могли бы использовать в своей карьере.