كيفية إنشاء مؤامرة matplotlib مع محورين y
أسهل طريقة لإنشاء مخطط Matplotlib بمحورين y هي استخدام الدالة twinx() .
يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.
مثال: قم بإنشاء مخطط Matplotlib بمحورين Y
لنفترض أن لدينا إطاري بيانات الباندا التاليين:
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]})
يشترك كلا إطاري البيانات في متغير “السنة” الذي يتراوح من 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 )
يعرض المحور y الموجود على الجانب الأيسر من المخطط إجمالي المبيعات سنويًا ويوضح المحور 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, 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