طرق لإنشاء الرسوم البيانية شريط باستخدام بيثون

على مدار العام الماضي ، واجهتني الحاجة إلى رسم الرسوم البيانية وشريط الرسوم البيانية في كثير من الأحيان بما يكفي لجعلني أرغب في الكتابة. بالإضافة إلى ذلك ، كنت أنا شخصياً تفتقر إلى مثل هذه المعلومات. تقدم هذه المقالة نظرة عامة على 3 طرق لإنشاء مثل هذه الرسوم البيانية في بيثون.

بادئ ذي بدء ، لم أكن أعرف نفسي لفترة طويلة من خبرتي القاسية: المخططات البيانية والرسم البياني هي شيئان مختلفان. الفرق الرئيسي هو أن الرسم البياني يوضح توزيع التردد - نحدد مجموعة من القيم لمحور الثور ، ويتم رسم التردد دائمًا على Oy. في المخطط الشريطي (الذي سيكون من المناسب استدعاء barplot في الأدب الإنجليزي) ، نحدد كلاً من محور الإحداثي والمحور الإحداثي.

للمظاهرة ، سأستخدم scikit للضرب تعلم مجموعة بيانات مكتبة Iris. لنبدأ بالواردات:

import pandas as pd import numpy as np import matplotlib import matplotlib.pyplot as plt from sklearn import datasets iris = datasets.load_iris() 

سنقوم بتحويل مجموعة بيانات القزحية إلى إطار بيانات - لذلك سيكون من الأنسب لنا العمل معها في المستقبل.

 data = pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target']) 

من بين المعلمات التي نهتم بها ، تحتوي البيانات على معلومات حول طول الكأس الصفراء وبتلات وعرض الكأس والبتلة.

باستخدام Matplotlib
الرسم البياني
لنقم بإنشاء رسم بياني منتظم يوضح توزيع تردد أطوال بتلات وسبال:

 fig, axs = plt.subplots(1, 2) n_bins = len(data) axs[0].hist(data['sepal length (cm)'], bins=n_bins) axs[0].set_title('sepal length') axs[1].hist(data['petal length (cm)'], bins=n_bins) axs[1].set_title('petal length') 

صورة

بناء شريط الرسم البياني

نحن نستخدم طرق matplotlib لمقارنة عرض الأوراق والأوراق الصفراء. هذا يبدو أكثر ملاءمة للقيام به على مخطط واحد:

 x = np.arange(len(data[:50])) width = 0.35 

على سبيل المثال ، ومن أجل تبسيط الصورة ، خذ أول خمسين سطرًا من ملف البيانات.

 fig, ax = plt.subplots(figsize=(40,5)) rects1 = ax.bar(x - width/2, data['sepal width (cm)'][:50], width, label='sepal width') rects2 = ax.bar(x + width/2, data['petal width (cm)'][:50], width, label='petal width') ax.set_ylabel('cm') ax.set_xticks(x) ax.legend() 

صورة

باستخدام الطرق البحرية

في رأيي ، فإن العديد من المهام لبناء الرسوم البيانية هي أسهل وأكثر كفاءة في الأداء باستخدام الأساليب المنقولة بحرا (بالإضافة إلى ذلك ، يفوز بحرا أيضا مع قدراته الرسومية ، في رأيي) .

سأقدم مثالاً على المهام التي تم حلها في البحر مع سطر واحد من التعليمات البرمجية. ولا سيما بحرا هو الرابح عندما تحتاج إلى بناء التوزيع. دعنا نقول أننا بحاجة إلى بناء توزيع طول sepal. الحل لهذه المشكلة كالتالي:

 sns_plot = sns.distplot(data['sepal width (cm)']) fig = sns_plot.get_figure() 

صورة

إذا كنت تحتاج فقط إلى جدول توزيع ، فيمكنك القيام بذلك مثل هذا:

 snsplot = sns.kdeplot(data['sepal width (cm)'], shade=True) fig = snsplot.get_figure() 

صورة

اقرأ المزيد عن توزيعات المباني في البحر هنا.

الرسوم البيانية بار بانداس

كل شيء بسيط هنا. في الواقع ، هذه هي قذيفة matplotlib.pyplot.hist () ، ولكن استدعاء دالة من خلال pd.hist () يكون أحيانًا أكثر ملاءمة من الإنشاءات الأقل مرونة لـ matplotlib-a. يمكنك قراءة المزيد في وثائق مكتبة الباندا.

يعمل مثل هذا:

 h = data['petal width (cm)'].hist() fig = h.get_figure() 

صورة

شكرا لك على القراءة حتى النهاية! سوف أكون سعيدًا بالتعليقات والتعليقات!

Source: https://habr.com/ru/post/ar470535/


All Articles