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

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

  • автор:

Как изменить цвет графика в Matplotlib с помощью Python?

Python предлагает широкий спектр библиотек для построения графиков, и Matplotlib — одна из них. Matplotlib — это простая и удобная библиотека, которая используется для создания качественных графиков. Библиотека pyplot matplotlib содержит команды и методы, которые заставляют matplotlib работать как matlab. Модуль pyplot используется для установки меток графиков, типа диаграммы и цвета диаграммы. Следующие методы используются для создания графика и соответствующего изменения цвета графика.

  • x : sequence of scalers along the x axis
  • height : sequence of scaler determining the height of bar ie y-axis
  • width : width of each bar
  • bottom : Used to specify the starting value along the Y axis.(Optional)
  • align : alignment of the bar
  • **kwargs : other parameters one of which is color which obviously specifies the color of the graph.

В этой статье мы используем набор данных, загруженный с kaggel.com, для примеров, приведенных ниже. Используемый набор данных представляет страны по количеству подтвержденных случаев COVID-19. Набор данных можно скачать по указанной ссылке: Ссылка на набор данных: Отчет о вирусе короны Пример 1:

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

График

Необходимо к нему применить такие цвета:

fig, ax = plt.subplots(figsize=(6, 1)) fig.subplots_adjust(bottom=0.5) cmap = (mpl.colors.ListedColormap(['#A52A2A', '#E50000', '#FFA500', '#FFFF00', '#00FF00'])) bounds = [0, 0.2, 0.4, 0.6, 0.8, 1] norm = mpl.colors.BoundaryNorm(bounds, cmap.N) fig.colorbar( mpl.cm.ScalarMappable(cmap=cmap, norm=norm), cax=ax, boundaries=[0] + bounds + [13], # Adding values for extensions. extend='both', ticks=bounds, spacing='proportional', orientation='horizontal', label='Discrete intervals, some other units', ) 

Кастомные цвета для графика

Подскажите, как можно это сделать? Спасибо!

Отслеживать

задан 26 фев 2022 в 8:46

73 9 9 бронзовых знаков

28 фев 2022 в 10:52

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Суть следующего решения в том, что каждый бар создаётся особо со своим цветом

import matplotlib.pyplot as plt import pandas as pd df = pd.DataFrame() colorN=['#A52A2A', '#E50000', '#FFA500', '#FFFF00', '#00FF00','#000000'] colorV = [0, 0.2, 0.4, 0.6, 0.8, 1] #must be sorted and size as colorN ax = plt.gca() ax.cla() for it in df.iterrows(): seg=it[1].values[0] val=it[1].values[1] for num,colV in enumerate(colorV,0): if colV>=val: print(num,colV) col=colorN[num] break ax.barh([seg],[val],color=col) plt.show() 

введите сюда описание изображения

Но вероятно следующий код будет более хорошим: все вычисленые значения цвета помещаются в список и затем выводятся

segs=[] vals=[] cols=[] for it in df.iterrows(): segs.append(it[1].values[0]) vals.append(it[1].values[1]) val=it[1].values[1] for num,colV in enumerate(colorV,0): if colV>=val: cols.append(colorN[num]) break ax.barh(segs,vals,color=cols) 

Но более правильный вариант,- создать столбец с цветом. То есть скопировать столбец со значениями применив к нему пользовательскую функцию

import matplotlib.pyplot as plt import pandas as pd df = pd.DataFrame() def func(a): ''' Тута любой кодб возвращающий цвет для значения ''' colorN=['#A52A2A', '#E50000', '#FFA500', '#FFFF00', '#00FF00','#000000'] colorV = [0, 0.2, 0.4, 0.6, 0.8, 1] #must be sorted and size as colorN for num,val in enumerate(colorV): if val>=a: return colorN[num]; df['colors']=df['scores'].apply(func) print(df) ''' segment scores colors 0 X 0.1 #E50000 1 Y 0.3 #FFA500 2 Z 0.7 #00FF00 3 W 0.9 #000000 ''' ax = df.plot.barh(x='segment', y='scores',color=list(df['colors'])) plt.show() 

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

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

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

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