زیباسازی Data Plotها در پایتون با استفاده از کتابخانه Pygal

پایتون پر از کتابخانه‌هایی است که می‌توانند داده‌ها را ترسیم کنند. یکی از گزینه‌های با تعامل بسیار بالا Pygal است که به درد آن دسته از کاربران می‌خورد که به ظاهر زیبای داده‌های ترسیم شده اهمیت می‌دهند. Pygal فایل‌های خروجی بسیار زیبا با فرمت SVG تحویل می‌دهد که کاربران می‌توانند به راحتی با آن‌ها تعامل داشته باشند. SVG یک فرمت استاندارد برای تصاویر تعاملی است و می‌تواند تنها با چند خط کد پایتون، تجربه کاربری بسیار خوبی ارائه دهد.

چگونه از کتابخانه Pygal برای ترسیم نمودارهای زیبا استفاده کنیم؟

در این بخش می‌خواهیم این شکل چند ستونی را که مربوط به نتیجه انتخابات انگلیس از سال ۱۹۶۶ تا ۲۰۲۰ است، بازسازی کنیم.

عکس از opensource.com

قبل از اینکه ادامه بدهیم، توجه داشته باشید که ممکن است نیاز به تنظیم کردن محیط پایتون برای اجرا شدن این کد داشته باشید. اقداماتی نظیر:

  • اجرا کردن یکی از نسخه‌های اخیر پایتون (دستورالعمل‌های برای لینوکس، مک و ویندوز)
  • تأیید این که در حال اجرای نسخه‌ای از پایتون هستید که با این کتابخانه‌ها کار می‌کند

دیتای مورد نیاز ما به صورت آنلاین در دسترس است و می‌توانید با کمک pandas آن را ایمپورت کنید:

 import pandas as pd
 df = pd.read_csv('https://anvil.works/blog/img/plotting-in-python/uk-election-results.csv') 

حالا دیتا آماده است. چیزی شبیه به این:

عکس از opensource.com

ترسیم این داده در Paygal به شکلی انجام می‌شود که خوانش آن بسیار آسان است. اول، آبجکت استایل را به شکلی تعریف می‌کنیم که تعریف بار چارت ما را ساده خواهد کرد. بعد از آن استایل سفارشی را با در نظر گرفتن دیگر متادیتاها به یک آبجکت Bar می‌دهیم:

import pygal
from pygal.style import Style
custom_style = Style(
     colors=('#0343df', '#e50000', '#ffff14', '#929591'),
     font_family='Roboto,Helvetica,Arial,sans-serif',
     background='transparent',
     label_font_size=14,
 )
c = pygal.Bar(
     title="UK Election Results",
     style=custom_style,
     y_title='Seats',
     width=1200,
     x_label_rotation=270,
)

در مرحله بعد دیتای مورد نظر را در آبجکت Bar اضافه می‌کنیم:

 c.add('Conservative', df['conservative'])
 c.add('Labour', df['labour'])
 c.add('Liberal', df['liberal'])
 c.add('Others', df['others'])
 c.x_labels = df['year']

نهایتاً شکل plot را با فرمت SVG خروجی می‌گیریم:

 c.render_to_file('pygal.svg')

نتیجه، یک plot تعاملی SVG می‌شود که در شکل زیر می‌بینید:

عکس از opensource.com

همان‌طور که می‌بینید این تصویر بسیار ساده و زیبا و بسیار خوانا است.

نتیجه‌گیری

بعضی از آپشن‌های ترسیم در پایتون، نیازمند ساخت تک‌تک آبجکت‌ها با جزئیات کامل هستند. Paygal از همان ابتدا این عمل‌کرد را در اختیار شما قرار می‌دهد. اگر دیتایی برای ترسیم دارید و می‌خواهید آن را به صورت تعاملی و به شکل ساده و زیبا و خوانا بصری کنید، حتماً Paygal را امتحان کنید.

منابع:
https://opensource.com/article/20/6/pygal-python

دیگر مقاله‌های مرتبط
هوش مصنوعی، آینده اینترنت اشیا (IoT)

با نگاهی به دوران طلایی هوش مصنوعی و پیشرفت‌های روزافزون آن می‌توان فرصت‌های زیادی در این حوزه برای آینده‌ی اینترنت Read more

هوشمندسازی اینترنت اشیاء (IoT) با کمک هوش مصنوعی

اینترنت اشياء که از میلیون‌ها وسیله هوشمند ساخته شده است، هر روزه با روند چشم‌گیری در حال رشد است؛ در Read more