⏱️4 min read · 824 words
يمتد تصور بيانات بايثون في عام 2026 من المخططات الاستكشافية السريعة إلى الأشكال الجاهزة للنشر ولوحات المعلومات التفاعلية. يتمتع كل من Matplotlib وSeaborn وPlotly وAltair بنقاط قوة خاصة بهم. يوضح لك هذا الدليل متى تستخدم كل منها وكيفية تحقيق نتائج احترافية بسرعة.
📋 Table of Contents
كومة التصور
- ماتبلوتليب— الأساس، السيطرة الكاملة، أرقام النشر
- سيبورن— مخططات إحصائية، وافتراضيات جميلة، وتكامل الباندا
- مؤامرة— مخططات تفاعلية للوحات المعلومات وتطبيقات الويب
- نسر– القواعد التعريفية، ممتازة للتحليل الاستكشافي
- اندفاعة / مضاءة— لوحات معلومات تفاعلية كاملة في بايثون
ماتبلوتليب: مؤسسة
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
import numpy as np
# Figure and axes
fig, ax = plt.subplots(figsize=(10, 6))
# Line plot
x = np.linspace(0, 10, 200)
ax.plot(x, np.sin(x), label='sin(x)', linewidth=2, color='#0066CC')
ax.plot(x, np.cos(x), label='cos(x)', linewidth=2, color='#FF6600', linestyle='--')
# Styling
ax.set_title('Trigonometric Functions', fontsize=16, fontweight='bold', pad=15)
ax.set_xlabel('x', fontsize=12)
ax.set_ylabel('f(x)', fontsize=12)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
plt.tight_layout()
plt.savefig('trig.png', dpi=300, bbox_inches='tight')
plt.show()
# Subplots
fig, axes = plt.subplots(2, 2, figsize=(12, 8))
fig.suptitle('Multiple Plots', fontsize=16, fontweight='bold')
axes[0,0].hist(np.random.normal(0, 1, 1000), bins=30, color='steelblue', edgecolor='white')
axes[0,0].set_title('Normal Distribution')
axes[0,1].scatter(np.random.rand(50), np.random.rand(50), alpha=0.6, s=80)
axes[0,1].set_title('Scatter Plot')
x = ['A', 'B', 'C', 'D', 'E']
y = [23, 45, 12, 67, 34]
axes[1,0].bar(x, y, color=['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4', '#FFEAA7'])
axes[1,0].set_title('Bar Chart')
axes[1,1].boxplot([np.random.normal(0, std, 100) for std in [1, 2, 3]])
axes[1,1].set_title('Box Plot')
plt.tight_layout()
plt.show()
سيبورن: التصور الإحصائي
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
# Load sample dataset
tips = sns.load_dataset('tips')
# Set theme
sns.set_theme(style='whitegrid', palette='muted', font_scale=1.2)
# Distribution plots
fig, axes = plt.subplots(1, 3, figsize=(15, 5))
# Histogram + KDE
sns.histplot(tips['total_bill'], kde=True, ax=axes[0], color='steelblue')
axes[0].set_title('Total Bill Distribution')
# Box plot by category
sns.boxplot(data=tips, x='day', y='total_bill', hue='sex', ax=axes[1])
axes[1].set_title('Bills by Day and Gender')
# Violin plot
sns.violinplot(data=tips, x='time', y='tip', hue='smoker',
split=True, inner='quart', ax=axes[2])
axes[2].set_title('Tips Distribution')
plt.tight_layout()
plt.show()
# Correlation heatmap
corr = tips.select_dtypes(include='number').corr()
plt.figure(figsize=(8, 6))
sns.heatmap(corr, annot=True, fmt='.2f', cmap='coolwarm',
center=0, square=True, linewidths=0.5)
plt.title('Correlation Matrix')
plt.show()
# Pair plot
sns.pairplot(tips, hue='sex', plot_kws={'alpha': 0.6})
plt.suptitle('Pair Plot', y=1.02)
plt.show()
# FacetGrid — multiple plots by category
g = sns.FacetGrid(tips, col='time', row='smoker', height=4)
g.map_dataframe(sns.scatterplot, x='total_bill', y='tip', alpha=0.6)
g.add_legend()
g.set_titles(col_template='{col_name}', row_template='{row_name}')
plt.show()
بلوتلي: الرسوم البيانية التفاعلية
import plotly.express as px
import plotly.graph_objects as go
import pandas as pd
# Simple line chart
df = px.data.gapminder().query("continent == 'Asia'")
fig = px.line(df, x='year', y='lifeExp', color='country',
title='Life Expectancy in Asia',
labels={'lifeExp': 'Life Expectancy', 'year': 'Year'})
fig.update_layout(
plot_bgcolor='white',
paper_bgcolor='white',
font_family='Inter',
showlegend=True,
)
fig.show() # opens in browser
# Animated scatter plot
df = px.data.gapminder()
fig = px.scatter(df, x='gdpPercap', y='lifeExp',
animation_frame='year',
animation_group='country',
size='pop', color='continent',
hover_name='country',
log_x=True,
size_max=55,
range_x=[100, 100000],
range_y=[25, 90],
title='World Health and Wealth (1952-2007)')
fig.show()
# Custom chart with graph_objects
fig = go.Figure()
x = ['Q1', 'Q2', 'Q3', 'Q4']
fig.add_trace(go.Bar(name='2025', x=x, y=[23, 45, 56, 78], marker_color='#4C72B0'))
fig.add_trace(go.Bar(name='2026', x=x, y=[34, 52, 61, 89], marker_color='#DD8452'))
fig.add_trace(go.Scatter(name='Target', x=x, y=[30, 50, 65, 85],
mode='lines+markers', line=dict(color='red', dash='dash')))
fig.update_layout(
title='Quarterly Revenue 2025 vs 2026',
xaxis_title='Quarter',
yaxis_title='Revenue ($M)',
barmode='group',
hovermode='x unified'
)
fig.show()
# Export to HTML
fig.write_html('chart.html')
# Export static image (requires kaleido)
fig.write_image('chart.png', width=1200, height=600, scale=2)
Streamlit: لوحات المعلومات الفورية
pip install streamlit plotly pandas
# dashboard.py
import streamlit as st
import plotly.express as px
import pandas as pd
st.set_page_config(page_title='Sales Dashboard', layout='wide')
st.title('Sales Analytics Dashboard')
# Sidebar filters
with st.sidebar:
st.header('Filters')
year = st.selectbox('Year', [2024, 2025, 2026])
region = st.multiselect('Region', ['North', 'South', 'East', 'West'],
default=['North', 'South'])
# KPI metrics
col1, col2, col3, col4 = st.columns(4)
col1.metric('Total Revenue', '$2.4M', '+12%')
col2.metric('Orders', '1,847', '+8%')
col3.metric('Avg Order Value', '$1,299', '+4%')
col4.metric('Satisfaction', '4.7/5', '+0.2')
# Charts in two columns
c1, c2 = st.columns(2)
with c1:
fig = px.line(get_monthly_data(year), x='month', y='revenue',
title='Monthly Revenue')
st.plotly_chart(fig, use_container_width=True)
with c2:
fig = px.pie(get_regional_data(region), values='revenue',
names='region', title='Revenue by Region')
st.plotly_chart(fig, use_container_width=True)
# Data table
st.subheader('Recent Orders')
df = get_orders(year, region)
st.dataframe(df, use_container_width=True)
# Run: streamlit run dashboard.py
اختيار الأداة الصحيحة
| مهمة | أفضل أداة |
|---|---|
| أرقام النشر | ماتبلوتليب |
| التحليل الإحصائي | سيبورن |
| مخططات الويب التفاعلية | مؤامرة |
| لوحات معلومات سريعة | ستريمليت |
| قواعد الرسومات | نسر |
| لوحات الإنتاج | اندفاعة |
لم يكن تصور بايثون في عام 2026 أكثر قوة من أي وقت مضى. استخدم Seaborn للتحليل الاستكشافي، وPlotly للتقارير التفاعلية، وMatplotlib لأرقام جودة النشر. يقوم Streamlit بتحويل أي تحليل إلى لوحة معلومات قابلة للمشاركة في دقائق.
🔗 Share this article
✍️ Leave a Comment