Как поменять цвет графика в matplotlib
Перейти к содержимому

Как поменять цвет графика в matplotlib

  • автор:

Как поменять цвет графика в 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 (с примерами)

Вы можете использовать следующий базовый синтаксис для изменения цвета гистограммы в 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 (с примерами)

Самый простой способ изменить цвет фона графика в 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() 

Цвет фона в Matplotlib

Пример 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() 

Цвет фона Matlplotlib с использованием шестнадцатеричного кода цвета

Пример 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 .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *