Вступление
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()
ее, используя PyPlot Matplotlib:
plt.scatter(TMIN, PRCP)
plt.show()
{.ezlazyload}
График, который мы построили, можно интерпретировать, но он выглядит немного простым. Попробуем настроить его. Мы хотим настроить фон нашего сюжета, используя несколько разных методов.
Изменить фон графика в 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()
{.ezlazyload}
Любой из этих подходов дает одинаковый результат, поскольку они оба вызывают одну и ту же функцию под капотом.
Изменить фон рисунка в 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()
{.ezlazyload}
Теперь посмотрим, что произойдет, когда мы уменьшим альфа подзаголовка
осей до 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()
{.ezlazyload}
Обратите внимание, что фон самого сюжета теперь прозрачен.
Добавить изображение на фон графика в 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()
{.ezlazyload}
extent
аргумента принимает дополнительные аргументы в следующем
порядке: horizontal_min
, horizontal_max
, vertical_min
,
vertical_max
).
Здесь мы прочитали изображение, обрезали его и показали по осям с
помощью imshow()
. Затем мы построили диаграмму рассеяния другим
цветом и показали ее.
Заключение
В этом руководстве мы рассмотрели несколько способов изменить фон графика с помощью Python и Matplotlib.
Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашим комплектом книг по визуализации данных в Python{.ebook-link} :
::: {style=“border: 1px solid #ebebeb;padding: 15px;”} {.ebook-link}
Визуализация данных в Python
::: {.row} ::: {.col-md-4 .col-xs-12} {.ezlazyload .img-responsive .center-block} :::
::: {.col-md-8 .col-xs-12 .my-auto} Станьте опасными с визуализацией данных
✅ 30-дневная гарантия возврата денег без вопросов
✅ от начального до продвинутого
✅ Регулярно обновляется бесплатно (последнее обновление в апреле 2021 г.)
✅ Обновлено с бонусными ресурсами и руководствами ::: ::: :::
Визуализация данных в Python с помощью Matplotlib и Pandas - это книга, предназначенная для абсолютных новичков в работе с Pandas и Matplotlib с базовыми знаниями Python и позволяющая им создать прочную основу для расширенной работы с этими библиотеками - от простых графиков до анимированных трехмерных графиков с интерактивными кнопки.
Он служит подробным руководством, которое научит вас всему, что вам нужно знать о Pandas и Matplotlib, в том числе о том, как создавать типы графиков, которые не встроены в саму библиотеку.
Книга «Визуализация данных в Python» , книга для начинающих и средних разработчиков Python, проведет вас через простые манипуляции с данными с помощью Pandas, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. В частности, на протяжении 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.
Он служит уникальным практическим руководством по визуализации данных в виде множества инструментов, которые вы можете использовать в своей карьере.