در پکیج matplotlib پایتون (Python) چندین روش برای تنظیم رنگ نمودار ها وجود دارد (6 یا 7 روش!) در این آموزش با مثال به بررسی تک تک این روشها میپردازیم! در ضمن برای این آموزش فیلم آموزشی هم در نظر گرفتیم!
دانلود فیلم (حجم: حدود 30 مگابایت) (مدت زمان: حدود 15 دقیقه)
برای تنظیم رنگ در نمودارهایی که با matplotlib در پایتون (Python) میکشید، میتونید از کلمهکلیدی color استفاده کنید! که این کلمه کلیدی یا keyword یک string رو به میگیره!
اما تعیین رنگ به انواع و اقسام راهها امکان پذیره! که ما اینجا تک تکشون رو بررسی میکنیم!
مثلاً کد زیر رو در نظر بگیرید!
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 بازهم همین کار رو میکنه!
چندتا ازاین رنگها رو در زیر مشاهده میکنید!
فقط اینکه بعضی از این رنگها رو حتی نمیدونم در فارسی بهشون چی میگن! برای همین براشون معنی ننوشتم! ولی میتونید توی عکسی که در بخش بعدی میاریم [کمی پایینتر و در همین مطلب]، رنگشون رو ببینید!
تلفظ رنگ فوق: /ˈsaɪən $ ˈsaɪ-æn, -ən/ = /سایِنْ/
تلفظ رنگ فوق: /məˈdʒentə/ = /مِجِنْتا/
در تصویر زیر (البته برای مشاهده تصویر زیر در کیفیت و اندازه تصویر مناسب، بر روی لینک موجود در زیر آن باید کلیک کنید!) لیست کامل این رتگها رو میبینید! و مثلاً فرض کنید من از رنگ dodgerblue که در تصویر زیر میبینید خوشم اومده! فقط کافیه در کدی که اول این آموزش آوردیم، بجای red قرار بدید dodgerblue! همین!
جهت مشاهده تصویر فوق، در کیفیت مناسب و در اندازه بزرگ کلیک کنید!
شما میتونید از فرمت 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 یعنی نهایت شفافیت!
مثلاً دوباره همون رنگ dodgerblue بنده خدا رو در نظر بگیرید! کد Hex این بنده خدا عبارت زیر است! (بازهم از روز روشنتره که نباید اینا رو حفظ کنید و باید هر وقت نیاز شد به سایتهای مرجع برای پیدا کردن این کدها مراجعه کنید!)
#1E90FF
که اگر بخواید این رنگ رو با سیستم HEX در matplotlib پایتون (Python) استفاده کنید، باید به صورت زیر بنویسید:!
color="#1E90FF"
در این سیستم رنگها طیف مشکی تا سفید رو شامل میشه و اون وسط مسطها میشه حاکستری! (و دیگه رنگهای بنفش و قرمز و … رو نداره! و فقط مشکی و سفید و طیف وسط اینها یعنی انواع خاکستریها رو داره!)
این عدد بین صفر و یک است! و درجه سفید بودن رو نشون میده!
عدد 0 یعنی مشکی کامل، و عدد 1 یعنی سفید کامل! و هر چیزی اون وسط مسطها میشه انواع و اقسام خاکستری!
مثلاً اینجوری مینویسیم:
color="0.1"
فرض کنید در کُد زیر قراره سه تا نمودار رو همزمان توی یک شکل بیاریم!
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()
اینم از نمودارش:
اولاً در خط 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) کلاً 10 تا رنگ (از C0 تا C9 بیشتر نداره!) [تصویر زیر این سیکل 10 تایی رو نشون میده! و همچنین نشون میده که بعد از 10اُمین رنگ، برمگیرده به اول سیکل!]
انصافاً خیلی کامل رنگ ها در matplotlib پایتون (Python) رو بررسی کردیم! اما به هر حال نظر، سوالی (مرتبط با همین آموزش) داشتید، در قسمت نظرات همین مطلب درخدمتیم!
تعداد دیدگاه | 4 |
تعداد بازدید | 14.5K |
تاریخ انتشار | 04/06/2019 |
تاریخ بروزرسانی | 04/06/2019 |
نویسنده | گروه آموزشی کولاک |