در حال بارگزاری

تنظیم رنگ نمودار ها در matplotlib پایتون (Python)

شما اینجا هستید:
تنظیم رنگ نمودار ها در matplotlib پایتون (Python)

تنظیم رنگ نمودارها در matplotlib پایتون (Python)

در پکیج matplotlib پایتون (Python) چندین روش برای تنظیم رنگ نمودار ها وجود دارد (6 یا 7 روش!) در این آموزش با مثال به بررسی تک تک این روش‌ها می‌پردازیم! در ضمن برای این آموزش فیلم آموزشی هم در نظر گرفتیم!

فیلم آموزشی

دانلود فیلم (حجم: حدود 30 مگابایت) (مدت زمان: حدود 15 دقیقه)

شروع آموزش متنی

برای تنظیم رنگ در نمودارهایی که با matplotlib در پایتون (Python) می‌کشید، میتونید از کلمه‌کلیدی color استفاده کنید! که این کلمه کلیدی یا keyword یک string رو به میگیره!

اما تعیین رنگ به انواع و اقسام راه‌ها امکان پذیره! که ما اینجا تک تکشون رو بررسی میکنیم!

1- رنگ های از پیش تعریف شده خاص (که حرف اختصاری هم دارن!)

مثلاً کد زیر رو در نظر بگیرید!

import matplotlib.pyplot as plt
x=[1,2,3,4,5,6,7,8,9,10]
y=[880,850,830,950,1000,1125,1310,1260,1300,1250]
plt.plot(x,y,marker="o",color="red")
plt.title("www.Koolac.Org")
plt.show()

این کد همون کدی است گه جلسه پیش نوشتیم! (برای مشاهده آموزش جلسه پیش به لینک زیر مراجعه کنید!)

رسم نمودار با استفاده از دستور plot در matplotlib پایتون (Python)

همینطور که در خط 4 مشاهده می‌کنید، به کلمه کلیدی color، رنگ red (قرمز) رو دادیم! با اینکار نمودار قرمز رنگ میشه! حالت اول رنگ‌دهی همینه!

برای این دسته از رنگ‌ها، یک حرف اختصاری هم در نظر گرفته شده! یعنی مثلاً بجای نوشتن red در کد بالا، اگر بنویسید r بازهم همین کار رو میکنه!

چندتا ازاین رنگ‌ها رو در زیر مشاهده می‌کنید!

فقط اینکه بعضی از این رنگ‌ها رو حتی نمیدونم در فارسی بهشون چی میگن! برای همین براشون معنی ننوشتم! ولی می‌تونید توی عکسی که در بخش بعدی میاریم [کمی پایین‌تر و در همین مطلب]، رنگشون رو ببینید!

  • b: blue (آبی)
  • g: green (سبز)
  • r: red (قرمز)
  • c: cyan 

تلفظ رنگ فوق: /ˈsaɪən $ ˈsaɪ-æn, -ən/ = /سایِنْ/

  • m: magenta

تلفظ رنگ فوق: /məˈdʒentə/ = /مِجِنْتا/

  • y: yellow (زرد)
  • k: black (مشکی)
  • w: white (سفید)

2- رنگ‌های استاندارد HTML برای تنظیم رنگ نمودار

در تصویر زیر (البته برای مشاهده تصویر زیر در کیفیت و اندازه تصویر مناسب، بر روی لینک موجود در زیر آن باید کلیک کنید!) لیست کامل این رتگ‌ها رو می‌بینید! و مثلاً فرض کنید من از رنگ dodgerblue که در تصویر زیر می‌بینید خوشم اومده! فقط کافیه در کدی که اول این آموزش آوردیم، بجای red قرار بدید dodgerblue! همین!

تنظیم رنگ نمودار ها در matplotlib پایتون (Python)

جهت مشاهده تصویر فوق، در کیفیت مناسب و در اندازه بزرگ کلیک کنید!

3- با استفاده از کدهای RGB و یا RGBA برای تنظیم رنگ نمودار

شما می‌تونید از فرمت RGB که ترکیبی از سه رنگ قرمز (red) و سبز (green) و آبی (blue) است استفاده کنید!

مثلاً همون رنگ dodgerblue رو در نظر بگیرید! کد RGB این رنگ میشه! (قطعاً نباید این کُدها رو حفظ کنیم، توی سایت‌های معروف این کدها به عنوان مرجع قرار داده شده و شما می‌تونید هر دفعه که لازم بود بهشووون مراجعه کنید!)

(30,144,255)

اما فِلاکت از اووونجایی شروع میشه که این matplotlib پایتون (Python) واسه خودش اینجوری تعریف کرده که سیستم RGB باید براساس عددی بین 0 تا 1 باشه! پس مجبوریم برای کُدرنگ بالا، تک تک درایه‌هاش رو به حداکثر مقدار ممکن یعنی 255 تقسیم کنیم تا به صورت عددی بین صفر و یک در بیاد و آقای matplotlib از ما قبول کنه!!!

یعنی اگر یه وقتی شما خواستید با این سیستم رنگ دهی کنید! باید بنویسید:

color=(30/255,144/255,255/255)

اما در سیستم RGBA، اون سه تا حرف اولش که دقیقاً مشابه RGB است! فقط اووون A اخر مخفف کلمه alpha است! و در واقع میزان کِدِر بودن رو نشووون میده! (منظورم از لغت “کِدِر متضاد کلمه شفاف یا transparent است)! شاید نتونسته باشم منظورم از کِدِر بودن رو خوب بیان کنم! برای همین مثال میزنم! قطعاً شیشه‌هایی رو دیدید که اصلاً پُشتِشوووون دیده نمیشه! این شیشه‌ها اصلاً شفاف نیستن و کاملاً کِدِر هستن! اما یک سری شیشه‌ها هستن که پشتِشون تا یه حدی دیده میشه! شما این رنگ‌ها رو مثل همون شیشه‌های رنگی قشنگ قدیمی تصور کنید، که تا یه حدی پُشتِشووون دیده می‌شد!

مثلاً دوباره اگر برای همون رنگ dodgerblue بنویسیم:

color=(30/255,144/255,255/255,0.2)

میاد میزان کِدر بودن رو 0.2 در نظر میگیره!

توجه کنید که میزان کِدِر بودن عددی بین صفر تا 1 است!

برای مقدار Alpha، عدد 1 یعنی کاملاً کِدِر (به صورتی که پشتش اصلاً دیده نمیشه!) و عدد 0 یعنی نهایت شفافیت!

4- استفاده از کدهای رنگ HEX برای تنظیم رنگ نمودار

مثلاً دوباره همون رنگ dodgerblue بنده خدا رو در نظر بگیرید! کد Hex این بنده خدا عبارت زیر است! (بازهم از روز روشن‌تره که نباید اینا رو حفظ کنید و باید هر وقت نیاز شد به سایت‌های مرجع برای پیدا کردن این کدها مراجعه کنید!)

#1E90FF

که اگر بخواید این رنگ رو با سیستم HEX در matplotlib پایتون (Python) استفاده کنید، باید به صورت زیر بنویسید:!

color="#1E90FF"

5- عدد بین صفر و یک GrayScale برای تنظیم رنگ نمودار

در این سیستم رنگ‌ها طیف مشکی تا سفید رو شامل میشه و اون وسط مسط‌ها میشه حاکستری! (و دیگه رنگ‌های بنفش و قرمز و … رو نداره! و فقط مشکی و سفید و طیف وسط این‌ها یعنی انواع خاکستری‌ها رو داره!)

این عدد بین صفر و یک است! و درجه سفید بودن رو نشون میده!

عدد 0 یعنی مشکی کامل، و عدد 1 یعنی سفید کامل! و هر چیزی اون وسط مسط‌ها میشه انواع و اقسام خاکستری!

مثلاً اینجوری می‌نویسیم:

color="0.1"

6- استفاده از سیکل رنگ (Color Cycle) برای تنظیم رنگ نمودار

فرض کنید در کُد زیر قراره سه تا نمودار رو همزمان توی یک شکل بیاریم!

import matplotlib.pyplot as plt
x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
y1=[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200]
y2=[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 189, 192, 195, 198, 201, 204, 207, 210, 213, 216, 219, 222, 225, 228, 231, 234, 237, 240, 243, 246, 249, 252, 255, 258, 261, 264, 267, 270, 273, 276, 279, 282, 285, 288, 291, 294, 297, 300]
y3=[4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, 240, 244, 248, 252, 256, 260, 264, 268, 272, 276, 280, 284, 288, 292, 296, 300, 304, 308, 312, 316, 320, 324, 328, 332, 336, 340, 344, 348, 352, 356, 360, 364, 368, 372, 376, 380, 384, 388, 392, 396, 400]
y4=[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, 265, 270, 275, 280, 285, 290, 295, 300, 305, 310, 315, 320, 325, 330, 335, 340, 345, 350, 355, 360, 365, 370, 375, 380, 385, 390, 395, 400, 405, 410, 415, 420, 425, 430, 435, 440, 445, 450, 455, 460, 465, 470, 475, 480, 485, 490, 495, 500]
plt.plot(x,y1,label="2x")
plt.plot(x,y2,label="3x")
plt.plot(x,y3,label="4x")
plt.plot(x,y4,label="5x")
plt.legend()
plt.show()

اینم از نمودارش:

تنظیم رنگ نمودار ها در matplotlib پایتون (Python)

اولاً در خط 7 یه نمودار میاریم روی تصویر! در خط 8 یه نمودار دیگه! در خط 9 یه نمودار دیگه! و در نهایت در خط 10 آخرین نمودار رو میاریم روی شکل! (یعنی چندتا نمودار با هم!)

و برای اینکه قاطی نشه! یه برچسب (label) هم در نظر میگیریم! میگیم، آقا اونی که توی خط 7 دارم تعریف میکنم، اسمش (یا برچسبش) برابر 2x است! و اونی که در خط 8 تعریف میکنم، برچسبش 3x است! و الی آخر…!

در خط 11 هم میایم اون legend (راهنمای نمودار) رو فعال میکنم! (اینکه legend چیه و دقیقاً چجوری کار میکنه رو بعدها خیلی کامل در موردش صحبت می‌کنیم! اما فعلاً در این حد از ما قبول کنید که در تصویر فوق legend رو علامت زدیم که چی هست!)

توجه کنید که: در نمودار فوق ترکیب رنگ به صورت زیر است:!

نمودار 2x: آبی

نمودار 3x: نارنجی

نمودار 4x: سبز

نمودار 5x: قرمز

در واقع matplotlib در پایتون (Python) واسه خودش یک سیکلی داره! که به ترتیب میاد رنگ‌ها رو از اون انتخاب میکنه! مثلاً اون رنگ آبی در واقع C0 است! (یعنی توی این سیکل اولین است! [میدونیم که پایتون از اندیس صفر شروع میکنه! پس اولین به زبووون python میشه صفرمین!])

رنگ نارنجی میشه C1 و الی آخر!

مثلاً فرض کنید میخوایم در شکل فوق جایِ رنگ “نارنجی” و “آبی” رو عوض کنیم، پس فقط کافیه خطوط 7 تا 10 رو به صورت زیر تغییر بدیم!

plt.plot(x,y1,label="2x",color="C1")
plt.plot(x,y2,label="3x",color="C0")
plt.plot(x,y3,label="4x",color="C2")
plt.plot(x,y4,label="5x",color="C3")

که نتیجه میشه شکل زیر!

تنظیم رنگ نمودار ها در matplotlib پایتون (Python)

در ضمن سیکل رنگ matplotlib در پایتون (Python) کلاً 10 تا رنگ (از C0 تا C9 بیشتر نداره!) [تصویر زیر این سیکل 10 تایی رو نشون میده! و همچنین نشون میده که بعد از 10اُمین رنگ، برمگیرده به اول سیکل!]

تنظیم رنگ نمودار ها در matplotlib پایتون (Python)

انصافاً خیلی کامل رنگ ها در matplotlib پایتون (Python) رو بررسی کردیم! اما به هر حال نظر، سوالی (مرتبط با همین آموزش) داشتید، در قسمت نظرات همین مطلب درخدمتیم!

مشاهده آموزش جلسه قبل

مطالب مرتبط

متد/تابع join برای رشته (string) در پایتون (Python) در این آموزش به طور کامل متد / تابع join...

تابع Counter در پایتون (Python) + فیلم و مثال در این مطلب بنا داریم تا به صورت جامع...

جزئیات نوشته
تعداد دیدگاه 4
تعداد بازدید 12.8K
تاریخ انتشار 04/06/2019
تاریخ بروزرسانی 04/06/2019
نویسنده گروه آموزشی کولاک
برای ارسال دیدگاه ابتداواردشوید