عرض البيانات هو أحد أفضل الطرق (إن لم يكن الأفضل) لتحليل البيانات وعلوم البيانات لتمثيل المعلومات المعقدة وتوليد رؤى meanings. للاستفادة القصوى من فرصتك في التواصل مع أصحاب المصلحة، قمت بجمع معلومات مفيدة حول مапبلت colormaps.
正如你将在本文中看到的, ماببلت هي مكتبة عرض البيانات متعددة الاستخدامات وقابلة للتوسيع بشكل كبير في بايثون. إنه يقدم كل خيار، من الرسوم البيانية البسيطة إلى الرسوم البيانية التفاعلية الكاملة. إذا لم تكن م Familiar بشكل عام ببايثون، أنصحك بالانضمام إلى دورة مقدمة إلى بايثون قبل أن نبدأ لفهم أساسياته. شخصيًا، أραبط دليل Cheat Sheet لبايثون قريبًا مني لأنه مرجع مفيد للوظائف الشائعة.
اختيار Colormap المناسب في Matplotlib
أحد الأشياء الأولى التي يجب النظر فيها هو تحديد ما إذا كانت الخريطة اللونية متتابعة، متفرقة، أو تصنيفية. هناك عوامل أخرى مهمة يجب النظر فيها عند اختيار الخرائط اللونية تشمل الاتساق الحسي، مما يعني أن الفروق المتساوية في قيم البيانات تُعتبر كفروق متساوية في الألوان، واستخدام خيارات الخرائط اللونية الصديقة للمصابين بالعمى اللوني لجعل تصوراتك قابلة للوصول إليها لجميع الجمهور.
يجب أن تأخذ أيضًا في الاعتبار المعايير المختلفة في المجالات عند اختيار الخرائط اللونية. على سبيل المثال، تمثل درجات الأزرق المختلفة depths مختلفة في دراسات علم المحيطات. إذا كنت غير متأكد من الخريطة اللونية المناسبة لتصوري، هناك أدوات و موارد مختلفة متاحة للتوجيه. على وجه الخصوص، دورتنا الخاصة مقدمة إلى تصور البيانات باستخدام Matplotlib تساعدك على التعامل مع العديد من السيناريوهات.
خرائط الألوان المختلفة في Matplotlib
في Python، يقدم وحدة matplotlib.colormaps
وصولًا إلى الخرائط اللونية المدمجة، مما يساعدك في اختيار أفضل النماذج لمشروعك. ما يلي هي أكثر الفئات شيوعًا من الخيارات:
خرائط الألوان المتتابعة
الخرائط اللونية المتتابعة تمثل بيانات مرتبة تنتقل من القيم المنخفضة إلى العالية.她们 transitions من الألوان الفاتحة إلى الداكنة، مما يظهر شدة البيانات عند مستويات مختلفة. مثال على خريطة لونية متتابعة هو في热图 لبيانات درجة الحرارة، حيث تمثل الألوان الفاتحة درجات حرارة أبرد والألوان الداكنة درجات حرارة أعلى.
افترض أن لديك مجموعة بيانات تحتوي على أعمدة التاريخ ودرجة الحرارة. الكود التالي سيقوم بإنشاء热图 لدرجة الحرارة.
استيراد المكتبات المطلوبة import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.colors as mcolors الخطوة الأولى: استخراج معلومات الشهر واليوم من عمود التاريخ calendar_data = temperature_data.copy() إنشاء نسخة احتياطية للعمل عليها calendar_data['Month'] = calendar_data['Date'].dt.strftime('%B') calendar_data['Day'] = calendar_data['Date'].dt.day الخطوة الثانية: تحديد ترتيب الأشهر لسلسلة التقويم الطبيعي month_names = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] تحويل عمود 'الشهر' إلى نوع فئة معين بترتيب محدد calendar_data['Month'] = pd.Categorical(calendar_data['Month'], categories=month_names, ordered=True) الخطوة الثالثة: تحويل البيانات لإنشاء جدول هيكلي للرسم البياني للحرارة monthly_temperature_table = calendar_data.pivot(index='Month', columns='Day', values='Temperature') الخطوة الرابعة: إعداد الرسم البياني للرسم البياني للحرارة plt.figure(figsize=(12, 8)) تحديد تNormalization مخصص لمدى درجة الحرارة (اختياري) norm = mcolors.Normalize(vmin=15, vmax=35) إنشاء رسم بياني للحرارة باستخدام色谱 متتابع heatmap = plt.imshow(monthly_temperature_table, cmap='YlOrRd', aspect='auto', norm=norm) إضافة شريط الألوان لت представление درجة الحرارة colorbar = plt.colorbar(heatmap, orientation='horizontal') colorbar.set_label('Temperature (°C)', labelpad=10) تسمية المحاور plt.xlabel('Day of the Month') plt.ylabel('Month') إعداد تسميات المحور السيني لتعرض أسماء الأشهر بدلاً من الأرقام plt.yticks(ticks=np.arange(len(month_names)), labels=month_names) إضافة عنوان للرسم البياني للحرارة plt.title('Monthly Temperature Heatmap (Sequential Colormap)') عرض الرسم البياني plt.grid(False) plt.show()
مثال على تصور色谱 متتابع Matplotlib. صورة من مؤلف
ال色谱 المتباينة
الخرائط اللونية المتفرقة تبرز البيانات التي تختلف عن القيمة المركزية في كلا الاتجاهين. تحتوي الخرائط اللونية المتفرقة على ألوان متضادة للاتجاهات الإيجابية والسلبية. التطبيق الشائع للخرائط اللونية المتفرقة هو في بيانات المالية لتمثيل الربح والخسارة.
# تعيين 'الشهر' ك指数 profit_loss_df.set_index('Month', inplace=True) # تعيين حجم الرسم البياني plt.figure(figsize=(8, 4)) # إنشاء خريطة لونية متفرقة cmap = plt.cm.RdYlGn # عرض البيانات كخريطة حرارية باستخدام imshow im = plt.imshow(profit_loss_df.T, cmap=cmap, aspect='auto', vmin=-np.max(np.abs(profit_loss_data)), vmax=np.max(np.abs(profit_loss_data))) # إضافة عارض الألوان مع التسمية cbar = plt.colorbar(im) cbar.set_label('Profit/Loss ($)') # إضافة تسميات لكل خلية for i, month in enumerate(profit_loss_df.index): plt.text(i, 0, f'{profit_loss_df.loc[month, "Profit/Loss"]:.2f}', ha='center', va='center', color='black') # تعيين تسميات وأرقام المحاور السينية والصادمة plt.xlabel('Month') plt.ylabel('') # لا حاجة لتسمية المحور الصادي plt.xticks(ticks=range(len(profit_loss_df.index)), labels=profit_loss_df.index, rotation=45) plt.yticks([]) # إخفاء أرقام المحور الصادي لأن لدينا صفًا واحدًا فقط # إضافة عنوان plt.title('Profit/Loss Heatmap (Diverging Colormap)') # ضبط التخطيط للعرض الأفضل plt.tight_layout() # عرض الرسم البياني plt.show()
مثال على عرض خريطة لونية متفرقة باستخدام Matplotlib. صورة من إعداد الكاتب.
الخرائط اللونية الدورية
الخرائط اللونية الدورية مفيدة لرؤية البيانات التي تمثل نمطًا متكررًا أو دوريًا، مثل الزوايا، أو مراحل الموجات، أو وقت اليوم. مثال على استخدام خريطة لونية دورية هو رؤية مراحل دالة دورية، مثل موجة الجيب.
إنشاء بيانات لموجة الجيب x = np.linspace(0, 2 * np.pi, 100) قيم X من 0 إلى 2π ( cycle كامل) y = np.sin(x) قيم Y (الجيب من X) إنشاء رسم بياني وأسطوانة plt.figure(figsize=(10, 6)) إنشاء رسم نقطي باستخدام خريطة لونية دورية تلوين النقاط بناءً على موقعها في دورة موجة الجيب points = plt.scatter(x, y, c=x, cmap='twilight', edgecolor='black') إضافة شريط لوني لعرض مرحلة الموجة cbar = plt.colorbar(points) cbar.set_label('Wave Phase (Radians)', rotation=270, labelpad=15) تسمية المحاور plt.xlabel('Angle (Radians)') plt.ylabel('Sine Value') إضافة عنوان plt.title('Sine Wave with Cyclic Colormap (Twilight)') عرض الرسم البياني plt.grid(True) plt.show()
مثال على可视化 خريطة لونية دورية باستخدام Matplotlib. صورة من الكاتب.
الخرائط اللونية النوعية
الخرائط اللونية النوعية مثالية لتمثيل البيانات التصنيفية التي لا تحتوي على ترتيب معين للفئات. حالة الاستخدام الشائعة للخرائط اللونية النوعية هي الرسم البياني الدائري حيث يمثل كل جزء فئة مختلفة يمكن تمييزها بسهولة.
# بيانات تصنيفية عينة categories = ['Category A', 'Category B', 'Category C', 'Category D', 'Category E'] values = [20, 35, 25, 10, 10] # ضبط حجم الرسم plt.figure(figsize=(8, 8)) # تعريف خريطة لونية نوعية يدويًا colors = ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3'] # ألوان مختارة يدويًا بالأكواد السداسية # إنشاء رسم بياني دائري plt.pie(values, labels=categories, autopct='%1.1f%%', startangle=90, colors=colors) # نسبة الجانبين متساوية لضمان رسم الدائرة ك cercle plt.axis('equal') # إضافة عنوان plt.title('Pie Chart with Qualitative Colormap') # عرض الرسم البياني plt.show()
مثال على عرض خريطة لونية نوعية بواسطة Matplotlib. صورة من المؤلف.
خرائط الألوان المتدرجة
خرائط الألوان المتدرجة مثل hsv
تُستخدم عندما تحتاج إلى مجموعة واسعة من الألوان.
توليد بيانات دورية x = np.linspace(0, 2 * np.pi, 500) y = np.sin(x) إنشاء رسم بخرائط الألوان المتوهجة plt.scatter(x, y, c=x, cmap='hsv', s=50) إضافة لوحة الألوان plt.colorbar(label='Phase') إضافة العلامات والعنوان plt.xlabel('Angle (radians)') plt.ylabel('Sine Value') plt.title('Cyclic Data Visualization using HSV Colormap') عرض الرسم plt.show()
مثال على可视化 خرائط الألوان المتوهجة باستخدام Matplotlib. الصورة من إعداد المؤلف.
خرائط الألوان الموحدة حسيًا
خرائط الألوان مثل inferno
و plasma
توفر رؤية أفضل عبر وسائل العرض المختلفة.
توليد بيانات منخفضات اصطناعية x = np.linspace(-5, 5, 100) y = np.linspace(-5, 5, 100) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) * 100 بيانات المنخفضات رسم بيانات المنخفضات باستخدام خرائط الألوان
plasma
plt.contourf(X, Y, Z, cmap='plasma') إضافة لوحة الألوان plt.colorbar(label='Elevation (m)') إضافة العنوان والعلامات plt.title('Topographic Map (Plasma Colormap)') plt.xlabel('X Coordinate') plt.ylabel('Y Coordinate') عرض الرسم plt.show()
مثال على عرض مساحة الألوان المتجانسة الحسية في Matplotlib. صورة للكاتب.
إنشاء وتعديل مساحات الألوان في Matplotlib
على الرغم من أن Matplotlib يحتوي على مجموعة واسعة من مساحات الألوان المدمجة، إلا أن هناك سيناريوهات قد ترغب فيها في تخصيص ألوانك. الأدوات الرئيسية لإنشاء مساحات الألوان المخصصة في Matplotlib هي ListedColormap
و LinearSegmentedColormap
.
إنشاء مساحة ألوان مخصصة باستخدام ListedColormap
ListedColormap
يسمح لك بإنشاء مساحة ألوان من قائمة من الألوان المحددة. هذا الأسلوب مفيد عند تخصيص ألوان محددة لفئات مختلفة في البيانات النوعية.
from matplotlib.colors import ListedColormap بيانات فئوية categories = ['Category A', 'Category B', 'Category C', 'Category D'] values = [25, 40, 35, 30] قائمة ألوان مخصصة للخريطة اللونية (مثلاً: درجات الأزرق، الأخضر، الأحمر والأرجواني) custom_colors = ['#1f77b4', '#2ca02c', '#d62728', '#9467bd'] إنشاء ListedColormap باستخدام الألوان المخصصة custom_cmap = ListedColormap(custom_colors) إعداد حجم الرسم البياني plt.figure(figsize=(8, 6)) إنشاء رسم بياني عمودي باستخدام الخريطة اللونية المخصصة bars = plt.bar(categories, values, color=custom_cmap.colors) إضافة عنوان plt.title('Bar Chart with Custom ListedColormap') تسمية المحاور plt.xlabel('Categories') plt.ylabel('Values') عرض الرسم البياني plt.show()
خريطة ألوان مخصصة باستخدام Matplotlib و ListedColormap. صورة من إعداد الكاتب.
إنشاء خريطة ألوان مخصصة باستخدام LinearSegmentedColormap
LinearSegmentedColormap
يسمح لك بإنشاء خرائط ألوان تنتقل بشكل سلس بين الألوان. هذا الأمر يستحق معرفته لأن البيانات المستمرة غالباً ما تتطلب تغييرات لونية متدرجة. هنا، أنا أيضًا أحدد عدد الفواصل التي أريد لها أن تكون في بصري.
from matplotlib.colors import LinearSegmentedColormap إنشاء شبكة من القيم لوظيفة جيسية ثنائية الأبعاد x = np.linspace(-2, 2, 500) y = np.linspace(-2, 2, 500) X, Y = np.meshgrid(x, y) Z = np.exp(- (X**2 + Y**2)) تحديد色谱 مخصص ينتقل من الأزرق إلى الأبيض ثم إلى الأحمر colors = ['blue', 'white', 'red'] custom_cmap = LinearSegmentedColormap.from_list('blue_white_red', colors) تعديل عدد فئات الألوان (المستويات المت离散ة) تحديد عدد المستويات (مثلاً 10 للمستويات المختلفة للألوان) num_classes = 10 levels = np.linspace(Z.min(), Z.max(), num_classes) إعداد حجم الرسم البياني plt.figure(figsize=(8, 6)) رسم وظيفة الجيسية ثنائية الأبعاد باستخدام色谱 المعدل contour = plt.contourf(X, Y, Z, levels=levels, cmap=custom_cmap) إضافة شريط الألوان لعرض فئات الألوان المت离散ة plt.colorbar(contour, label='Gaussian Function Value') إضافة علامات لل軸 plt.xlabel('X') plt.ylabel('Y') إضافة عنوان plt.title(f'2D Gaussian with {num_classes} Discrete Color Classes') عرض الرسم البياني plt.show()
Matplotlib مخصص تعديل عدد فئات الألوان. صورة من مؤلف
تخصيص نطاقات الألوان والشدة
يمكنك التحكم في شدة أو نطاق الألوان في جدول الألوان الموجود بتعديل طبيعته أو تقسيمه لاستخدام مجموعة فرعية من الألوان المتاحة. في المثال التالي، تم تقسيم نطاقات الألوان لعرض درجات الحرارة بين 16 و 40 درجة مئوية.
# إعداد الرسم البياني للخريطة الحرارية plt.figure(figsize=(12, 8)) # تحديد طبيعية مخصصة لنطاق درجات الحرارة norm = mcolors.Normalize(vmin=16, vmax=40) # إنشاء الخريطة الحرارية بجدول ألوان متتابع heatmap = plt.imshow(monthly_temperature_table, cmap='YlOrRd', aspect='auto', norm=norm) # إضافة شريط الألوان لتمثيل درجات الحرارة colorbar = plt.colorbar(heatmap, orientation='horizontal') colorbar.set_label('Temperature (°C)', labelpad=10) # تسمية المحاور plt.xlabel('Day of the Month') plt.ylabel('Month') # تعيين تلميحات المحور العمودي لعرض أسماء الأشهر بدلاً من الأرقام plt.yticks(ticks=np.arange(len(month_names)), labels=month_names) # إضافة عنوان للخريطة الحرارية plt.title('Monthly Temperature Heatmap (Sequential Colormap)') # عرض الرسم البياني plt.grid(False) plt.show()
تخصيص نطاقات الألوان وشدتها في Matplotlib. صورة من المؤلف.
دمج جداول الألوان الموجودة
يمكنك أيضًا combiner الأ谱色图 الموجودة عن طريق خلط عدة أ谱色ات لإنشاء تصورات vizualizations معقدة.
from matplotlib.colors import LinearSegmentedColormap, Normalize # إنشاء بيانات ارتفاع اصطناعية x = np.linspace(-180, 180, 500) # خطوط العرض y = np.linspace(-90, 90, 250) # خطوط العرض X, Y = np.meshgrid(x, y) Z = 5000 * np.sin(np.sqrt(X**2 + Y**2) * np.pi / 180) # بيانات الارتفاع الاصطناعية # تحديد الأ谱色ات الأساسية ('viridis' و 'cividis') cmap1 = plt.get_cmap('viridis') cmap2 = plt.get_cmap('cividis') # إنشاء谱色 مخصص عن طريق خلط الأ谱色ات الأساسية def blend_colormaps(cmap1, cmap2, blend_ratio=0.5): """Blend two colormaps together.""" c1 = cmap1(np.linspace(0, 1, 256)) c2 = cmap2(np.linspace(0, 1, 256)) blended_colors = (1 - blend_ratio) * c1 + blend_ratio * c2 return LinearSegmentedColormap.from_list('blended_cmap', blended_colors) # إنشاء الأ谱色 المختلط custom_cmap = blend_colormaps(cmap1, cmap2, blend_ratio=0.5) # Normalize البيانات للعرض norm = Normalize(vmin=-5000, vmax=5000) # ضبط حجم الرسم البياني plt.figure(figsize=(12, 6)) # رسم بيانات الارتفاع الاصطناعية باستخدام الأ谱色 المختلط contour = plt.contourf(X, Y, Z, levels=100, cmap=custom_cmap, norm=norm) # إضافة شريط الألوان لعرض maping الألوان المختلطة plt.colorbar(contour, label='Elevation (meters)') # إضافة علامات لل محاور plt.xlabel('Longitude') plt.ylabel('Latitude') # إضافة عنوان plt.title('Geographical Elevation Data with Blended Colormap (Viridis + Cividis)') # عرض الرسم البياني plt.show()
دمج مappers الألوان الموجودة في Matplotlib. صورة من المؤلف.
عكس mappers الألوان باستخدام اللاحقة _r
يمكنك عكس أي mapper ألوان في Matplotlib عن طريق إضافة اللاحقة _r
إلى اسمه.
# إعداد الرسم البياني للHeatmap plt.figure(figsize=(12, 8)) # إنشاء طبيعي مخصص ل نطاق الألوان norm = mcolors.Normalize(vmin=16, vmax=40) # رسم Heatmap باستخدام imshow و mapper الألوان التسلسقي im = plt.imshow(monthly_temperature_table, cmap='YlOrRd_r', norm=norm, aspect='equal') # إضافة شريط الألوان باتجاه أفقي cbar = plt.colorbar(im, orientation='horizontal', pad=0.1) cbar.set_label('Temperature (°C)', labelpad=10) # إضافة علامات لل軸 plt.xlabel('Day of the Month') plt.ylabel('Month') # تعيين علامات y-ticks لعرض أسماء الأشهر بدلاً من الأرقام plt.yticks(ticks=np.arange(len(month_names)), labels=month_names) # إضافة عنوان plt.title('Temperature Heatmap (Sequential Colormap)') # عرض الرسم البياني plt.show()
عكس mappers الألوان في Matplotlib باستخدام اللاحقة _r. صورة من المؤلف.
تعامل مع الأخطاء الشائعة في mappers الألوان في Matplotlib
عند العمل مع مappers الألوان في Matplotlib، قد تواجه أخطاء تؤثر على مسار عملك. ما يلي هي بعض الأخطاء وكيفية إصلاحها.
AttributeError: module ‘matplotlib’ has no attribute ‘colormaps’
يحدث هذا الخطأ عندما تستخدم إصدارات Matplotlib قبل 3.4.0 للوصول إلى matplotlib.colormaps
. تم تقديم خاصية colormaps في Matplotlib 3.4.0. أولاً، قم بفحص إصدار Matplotlib الخاص بك باستخدام الكود أدناه لإصلاح هذا الخطأ.
import matplotlib print(matplotlib.__version__)
قم بالترقية باستخدام الأمر pip التالي.
pip install --upgrade matplotlib
إذا واجهت مشاكل في ترقية إصدار Matplotlib، حاول الطريقة التالية للوصول إلى colormaps.
plt.get_cmap('viridis') # بدلاً من matplotlib.colormaps['viridis']
توزيع الألوان غير صحيح
قد تواجه تخصيصات لونية غير صحيحة عند تمرير قيمة خارج النطاق المتوقع أو عند تطبيق مапة الألوان بشكل غير صحيح. قد تنشأ تخصيصات لونية غير صحيحة أيضًا إذا كانت مапة الألوان مخصصة للبيانات المستمرة ولكن تطبق على بيانات فئوية أو العكس.
لضمان أن تكون بياناتك ضمن النطاق المتوقع، قم دائمًا بتنعيم أو تقييم البيانات باستخدام المعاملات vmax
و vmin
.
import matplotlib.colors as mcolors # إنشاء مجموعة بيانات درجة الحرارة العينية data = np.random.rand(10, 10) * 100 # تعديل النطاق ليتناسب مع بياناتك # إنشاء مثيل لتنعيم الألوان لتحجيم البيانات إلى نطاق مапة الألوان norm = mcolors.Normalize(vmin=0, vmax=100) # إنشاء رسم熱ري باستخدام مапة الألوان 'viridis' والتنعيم المحدد plt.imshow(data, cmap='viridis', norm=norm, interpolation='nearest') plt.colorbar() plt.show()
لتحكم دقيق، يمكنك تحديد حدود الألوان صراحةً باستخدام المعاملات boundaries
أو norm
في دوال الرسم.
العناصر البصرية والنتائج غير المتوقعة
عند العمل مع بيانات متقطعة أو بجودة منخفضة، قد تواجه تدرجات لونية غير متوقعة، أو تباين مفرط، أو ت渗يل ألوان. يحدث هذا المشكلة عندما تكون بياناتك لها نطاق محدود ولكن يتم عرضها بخرائط ألوان مستمرة.
لحل هذه المشكلة، استخدم المزيد من نقاط البيانات أو قم بتعديل عدد مستويات الألوان لتنعيم الت.transitions
# زيادة عدد الصناديق في خريطة الألوان cmap = plt.get_cmap('viridis', 256) plt.imshow(data, cmap=cmap)
يمكنك تقسيم خريطة الألوان إلى مستويات ثابتة لمعالجة البيانات المتقطعة عند الحاجة.
cmap = plt.get_cmap('inferno', 10) # تقسيم خريطة الألوان إلى 10 مستويات متقطعة plt.imshow(data, cmap=cmap)
يمكنك أيضًا التحقق من إعدادات العرض وتعديل الجودة خاصة عند حفظ التصورات لتجنب الرسوم البيانية ذات الجودة المنخفضة
plt.savefig('plot.png', dpi=300) # حفظ الرسم البياني بجودة أعلى
تشويه الألوان بسبب القطع
يحدث انحراف الألوان عندما تحتوي البيانات على قيم极端ية خارجة عن النطاق اللوني المتوقع. مما يؤدي إلى قطع أجزاء من البيانات وتعيين اللون الأدنى أو الأقصى في جدول الألوان.
للتحاشي انحراف الألوان، قم بتعديل حدود الألوان باستخدام vmin
و vmax
لتناسب نطاق بياناتك، مما يمنع القطع.
plt.imshow(data, cmap='plasma', vmin=0, vmax=100)
should also use robust scaling to handle outliers by setting custom limits that exclude extreme values.
import numpy as np robust_vmin, robust_vmax = np.percentile(data, [2, 98]) # استخدم النسب المئوية لإزالة القيم extremes plt.imshow(data, cmap='inferno', vmin=robust_vmin, vmax=robust_vmax)
عدم عرض جدول الألوان بشكل صحيح في الرسوم البيانية ثلاثية الأبعاد
إذا كان هناك مشكلة في كيفية 매핑 البيانات على السطح الثلاثي الأبعاد، قد لا تظهر جداول الألوان بشكل صحيح في التصورات الثلاثية الأبعاد. لحل المشكلة، تأكد من أن بيانات المحور z normalize لتناسب النطاق المتوقع لجدول الألوان. كما استخدم حدود جدول الألوان المناسبة لالتقاط النطاق الكامل للقيم z.
from mpl_toolkits.mplot3d import Axes3D 生成用于3D曲面图示例数据 X, Y = np.meshgrid(np.linspace(-5, 5, 50), np.linspace(-5, 5, 50)) Z = np.sin(np.sqrt(X**2 + Y**2)) 创建一个3D坐标轴对象 ax = plt.axes(projection='3d') 使用'viridis'颜色映射绘制曲面并调整颜色限制 ax.plot_surface(X, Y, Z, cmap='viridis', vmin=np.min(Z), vmax=np.max(Z)) plt.show()
结论
选择正确的颜色映射是一个重要步骤,因为它真正影响了用户如何查看和理解您的数据。在我看来,在数据分析上花费大量时间,而在最终步骤,也就是您传达发现的部分,草率行事是一个大错误。
幸运的是,Matplotlib提供了许多选项,确保您的视觉讲述一个引人入胜的故事。报名我们的课程, 使用Matplotlib进行数据可视化的介绍,成为专家。另外,如果您是同时使用Seaborn进行可视化的Python用户(了解两者都是很好的),请阅读我们的 选择Seaborn颜色的快速指南,然后跟随我们的 使用Seaborn进行数据可视化的介绍课程。
Source:
https://www.datacamp.com/tutorial/matplotlib-colormaps