Як створити діаграму matplotlib з двома осями y
Найпростіший спосіб створити діаграму Matplotlib із двома осями ординат — це використовувати функцію twinx() .
У наступному прикладі показано, як використовувати цю функцію на практиці.
Приклад: створіть діаграму Matplotlib із двома осями Y
Припустімо, що ми маємо наступні два panda DataFrames:
import pandas as pd #createDataFrames df1 = pd. DataFrame ({' year ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], ' sales ': [14, 16, 19, 22, 24, 25, 24, 24, 27, 30]}) df2 = pd. DataFrame ({' year ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], ' leads ': [4, 4, 4, 5, 4, 5, 7, 8, 5, 3]})
Обидва DataFrame мають спільну змінну «рік» у діапазоні від 1 до 10, але перший DataFrame відображає загальний обсяг продажів щороку, тоді як другий DataFrame відображає загальну кількість потенційних клієнтів щороку.
Ми можемо використати такий код, щоб створити діаграму Matplotlib, яка відображає продажі та потенційних клієнтів на діаграмі з двома осями Y:
import matplotlib. pyplot as plt
#define colors to use
col1 = ' steelblue '
col2 = ' red '
#define subplots
fig,ax = plt. subplots ()
#add first line to plot
ax. plot (df1. year , df1. sales , color=col1)
#add x-axis label
ax. set_xlabel (' Year ', fontsize= 14 )
#add y-axis label
ax. set_ylabel (' Sales ', color=col1, fontsize= 16 )
#define second y-axis that shares x-axis with current plot
ax2 = ax. twinx ()
#add second line to plot
ax2. plot (df2. year , df2. leads , color=col2)
#add second y-axis label
ax2. set_ylabel (' Leads ', color=col2, fontsize= 16 )
Вісь ординат у лівій частині діаграми показує загальний обсяг продажів за рік, а вісь ординат у правій частині діаграми показує загальну кількість потенційних клієнтів за рік.
Синя лінія на графіку відображає загальний обсяг продажів за рік, а червона лінія – загальну кількість потенційних клієнтів за рік.
Не соромтеся використовувати маркер і аргументи ширини лінії , щоб змінити вигляд ліній на діаграмі:
import matplotlib. pyplot as plt
#define colors to use
col1 = ' steelblue '
col2 = ' red '
#define subplots
fig,ax = plt. subplots ()
#add first line to plot
ax. plot (df1. year , df1. sales , color=col1, marker=' o ', linewidth= 3 )
#add x-axis label
ax. set_xlabel (' Year ', fontsize= 14 )
#add y-axis label
ax. set_ylabel (' Sales ', color=col1, fontsize= 16 )
#define second y-axis that shares x-axis with current plot
ax2 = ax. twinx ()
#add second line to plot
ax2. plot (df2. year , df2. leads , color=col2, marker=' o ', linewidth= 3 )
#add second y-axis label
ax2. set_ylabel (' Leads ', color=col2, fontsize= 16 )
Зауважте, що обидві лінії тепер ширші та містять маркери «o» для відображення окремих точок даних.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції в Matplotlib:
Як налаштувати положення мітки осі в Matplotlib
Як встановити діапазони осей у Matplotlib
Як встановити значення осі X у Matplotlib