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