DevGang
Авторизоваться

Как изменить фон графика в 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']

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

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

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

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

Теперь давайте продолжим и изменим фон этого сюжета. Мы можем сделать это двумя разными подходами. Мы можем изменить цвет фона, который сейчас установлен на white. Или мы можем ввести изображение, используя 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

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

Цвет всей фигуры будет синим, и мы изначально установим alpha для объекта осей значение 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()

Теперь посмотрим, что произойдет, если мы уменьшим альфа-канал подзаголовка осей до 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

Если вы хотите использовать изображение в качестве фона для сюжета, это можно сделать с помощью функции imread() PyPlot. Эта функция загружает изображение в 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()

Аргумент extent принимает дополнительные аргументы в следующем порядке: horizontal_minhorizontal_maxvertical_minvertical_max.

Источник:

#Python #Matplotlib
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

Оплатив хостинг 25$ в подарок вы получите 100$ на счет

Получить