Как поменять цвет графика в matplotlib
Шаг 18.
Язык Python. Визуализация данных. Библиотека Matplotlib. Основы работы с модулем pyplot. Работа с линейным графиком. Цвет линии
На этом шаге мы рассмотрим способы задания цвета .
RGB или RGBA : кортеж значений с плавающей точкой в диапазоне [0, 1] (пример: (0.1, 0.2, 0.3);
plt.plot(x, y, color='xkcd:light violet')
plt.plot(x, y, color='tab:red')
Если цвет задаётся с помощью символа из набора , то он может быть совмещён со стилем линии в рамках параметра fmt функции plot() . Например: штриховая красная линия будет задаваться так: ‘—r’ , а штрихпунктирная зелёная так ‘-.g’ :
import matplotlib.pyplot as plt x = [1, 5, 10, 15, 20] y = [1, 7, 3, 5, 11] plt.plot(x, y, '-.g') plt.show()
Архив с файлом можно взять здесь.
Рис.1. График, представленный в виде штрихпунктирной зеленой линии
На следующем шаге мы рассмотрим задание типа графика .
Как изменить цвет гистограммы Matplotlib (с примерами)

Вы можете использовать следующий базовый синтаксис для изменения цвета гистограммы в Matplotlib:
plt.hist (data, color = " lightblue", ec=" red ")
- data : имя данных, которые будут использоваться для гистограммы.
- color : цвет заливки столбцов гистограммы.
- ec : цвет края столбцов гистограммы.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: изменение цвета гистограммы Matplotlib
Предположим, у нас есть следующий список значений:
#define list of data data = [2, 4, 4, 5, 6, 6, 7, 8, 9, 9, 9, 10, 12, 12, 14]
Мы можем использовать следующий базовый синтаксис для создания гистограммы Matplotlib для визуализации значений в этом наборе данных:
import matplotlib.pyplot as plt #create histogram plt.hist (data)

По умолчанию Matplotlib создает гистограмму с темно-синим цветом заливки и без цвета края.
Однако мы можем использовать следующий синтаксис, чтобы изменить цвет заливки на голубой, а цвет края на красный:
import matplotlib.pyplot as plt #create histogram with light blue fill color and red edge color plt.hist (data, color = " lightblue", ec=" red ")

Новая гистограмма имеет голубой цвет заливки и красный цвет края.
Вы также можете использовать аргумент lw , чтобы изменить ширину линии для краев гистограммы:
import matplotlib.pyplot as plt #create histogram plt.hist (data, color = " lightblue", ec=" red", lw= 5 )

Чем больше значение, которое вы используете для lw , тем толще будут края полос.
Примечание : Вы можете найти полную документацию для функции Matplotlib hist здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в Python:
Как изменить цвет фона в Matplotlib (с примерами)

Самый простой способ изменить цвет фона графика в Matplotlib — использовать аргумент set_facecolor() .
Если вы определяете фигуру и ось в Matplotlib, используя следующий синтаксис:
fig, ax = plt.subplots()
Затем вы можете просто использовать следующий синтаксис для определения цвета фона графика:
ax.set_facecolor('pink')
В этом руководстве представлено несколько примеров использования этой функции на практике.
Пример 1. Установка цвета фона с использованием имени цвета
В следующем коде показано, как установить цвет фона графика Matplotlib, используя имя цвета:
import matplotlib.pyplot as plt #define plot figure and axis fig, ax = plt.subplots() #define two arrays for plotting A = [3, 5, 5, 6, 7, 8] B = [12, 14, 17, 20, 22, 27] #create scatterplot and specify background color to be pink ax.scatter (A, B) ax.set_facecolor('pink') #display scatterplot plt.show()

Пример 2. Установка цвета фона с помощью шестнадцатеричного кода цвета
В следующем коде показано, как установить цвет фона графика Matplotlib с помощью шестнадцатеричного кода цвета:
import matplotlib.pyplot as plt #define plot figure and axis fig, ax = plt.subplots() #define two arrays for plotting A = [3, 5, 5, 6, 7, 8] B = [12, 14, 17, 20, 22, 27] #create scatterplot and specify background color to be pink ax.scatter (A, B) ax.set_facecolor('#33FFA2') #display scatterplot plt.show()

Пример 3: установка цвета фона для определенного подграфика
Иногда у вас будет более одного графика Matplotlib. В этом случае вы можете использовать следующий код, чтобы указать цвет фона для одного графика:
import matplotlib.pyplot as plt #define subplots fig, ax = plt.subplots(2, 2) fig. tight_layout () #define background color to use for each subplot ax[0,0].set_facecolor('blue') ax[0,1].set_facecolor('pink') ax[1,0].set_facecolor('green') ax[1,1].set_facecolor('red') #display subplots plt.show()
Как изменить фон графика в 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_min , horizontal_max , vertical_min , vertical_max .