מפות צבעים ב-Matplotlib: התאמת גופי צבעים

הדמיית נתונים היא אחת הדרכים הטובות ביותר (אם לא הכי טובה) עבור אנליסטים ומדעני נתונים לייצג מידע מורכב ולהפיק תובנות משמעותיות. כדי לנצל באופן מלא את ההזדמנות לתקשר עם בעלי העניין, אספתי מידע שימושי על מפות צבעים של Matplotlib. 

כפי שתראו במאמר זה, Matplotlib היא ספריית הדמיית נתונים מאוד גמישה וניתנת להרחבה בפייתון. היא מציעה אפשרויות רבות, מגרפים פשוטים עד לדימויים אינטראקטיביים לגמרי. אם אינכם מורגלים בפייתון, אני מעודד אתכם להירשם לקורס הקדמה לפייתון לפני שנתחיל, כדי להבין את היסודות שלו. אני אישית גם שומר את גליון המזכרות של פייתון קרוב, כי הוא מקור הפניה יעיל לפונקציות נפוצות.

בחירת מפת צבעים נכונה ב Matplotlib

אחד מהדברים הראשונים לשקול הוא להחליט בין מפות צבעים עוקבות, מפוצלות או קטגוריות. גורמים חשובים נוספים לשקול בבחירת מפות צבעים כוללים אחידות תפיסתית, מה שאומר שהבדלים שווים בערכי הנתונים נתפסים כהבדלים שווים בצבע, ושימוש באפשרויות מפות צבעים ידידותיות לעיוורי צבעים כדי להפוך את החזות שלך נגישה לכל הקהלים.

עליך גם לשקול תקנים שונים של תחומים בבחירת מפות צבעים. לדוגמה, גוונים שונים של כחול מייצגים עומקי מים שונים במחקרים אוקיינוגרפיים. אם אתה לא בטוח לגבי המפת צבעים המתאימה להדגמה שלך, קיימים כלים ומשאבים שונים להנחיה. במיוחד, הקורס שלנו מבוא להדגמת נתונים עם Matplotlib עוזר לך לעבור דרך רבות מהסיטואציות.

מפות צבעים שונות ב-Matplotlib

בפייתון, המודול matplotlib.colormaps מספק גישה למפות צבעים מובנות, מה שעוזר לך לבחור את התכנית הטובה ביותר לפרויקט שלך. הנה הקטגוריות הנפוצות ביותר של אפשרויות:

מפות צבעים עוקבות

מפי צבעים רציפים מייצגים מידע ממויין שמתקדם מערכים נמוכים לגבוהים. הם עוברים מגוונים בהירים לכהים, ומראים את גודל המידע ברמות שונות. דוגמה למפת צבעים רציפה היא במפות חום לנתוני טמפרטורה, שבהן גוונים בהירים יותר מייצגים טמפרטורות נמוכות וגוונים כהים יותר מייצגים טמפרטורות גבוהות.

נניח שיש לך מערכת נתונים עם עמודות תאריך וטמפרטורה. הקוד הבא ייצור מפת חום לטמפרטורה.

# יבוא ספריות נדרשות import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.colors as mcolors # שלב 1: הוצאת מידע על חודש ויום מעמודת התאריך calendar_data = temperature_data.copy() # יצירת העתק על מנת לעבוד איתו calendar_data['Month'] = calendar_data['Date'].dt.strftime('%B') calendar_data['Day'] = calendar_data['Date'].dt.day # שלב 2: הגדרת סדר של חודשים לרצף לוח שנה טבעי 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) # שלב 3: פינוי המידע ליצירת טבלה מובנית למפת החום monthly_temperature_table = calendar_data.pivot(index='Month', columns='Day', values='Temperature') # שלב 4: הכנת הגרף עבור מפת החום plt.figure(figsize=(12, 8)) # הגדרת נורמליזציה מותאמת לטווח הטמפרטורה (אופציונלי) 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') # שינוי סימון יישורי ה-y להצגת שמות חודשים במקום מספרים 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') # קביעת תוויות ותוויות לצירים x ו-y plt.xlabel('Month') plt.ylabel('') # לא דרושה תווית עבור ציר y plt.xticks(ticks=range(len(profit_loss_df.index)), labels=profit_loss_df.index, rotation=45) plt.yticks([]) # הסתרת תוויות ציר y, שכן יש לנו רק שורה אחת # הוספת כותרת plt.title('Profit/Loss Heatmap (Diverging Colormap)') # כיול פריסת התמונה להצגה טובה יותר plt.tight_layout() # הצגת התמונה plt.show()

דוגמה להצגה ויזואלית של מפת צבעים מתפצלת ב-Matplotlib. תמונה על ידי המחבר.

מפי צבעים ציקליות

מפי צבעים ציקליות מועילים להצגת נתונים המייצגים דפוס חוזר או ציקלי, כגון זוויות, מצבי גל, או שעות ביממה. דוגמה לשימוש במפת צבעים ציקלית היא הצגת מצביו של פונקציה תקופתית, כגון גל סינוס.

# יצירת נתונים עבור גל סינוס x = np.linspace(0, 2 * np.pi, 100) # ערכי X מ-0 עד 2π (מחזור שלם) 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) # יחס צדדים שווה מבטיח שהעוגה תוכל להיות צויירת כמעגל 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()

דוגמה של תרשים עם מפת צבעים קשת-ירח. תמונה על ידי המחבר.

מפות צבעים עם שוויון תפיסתי

מפות צבעים כמו 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 עבור 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 custom adjusting the number of color classes. Image by Author.

Customizing color ranges and intensity

אתה יכול לשלוט בעוצמה או בטווח הצבעים במפת צבעים קיימת על ידי תיקון הנורמליזציה שלה או חיתוך שלה לשימוש בתת-קבוצה של הצבעים הזמינים. בדוגמה הבאה, טווחי הצבעים מחותכים כדי להראות טמפרטורות בין 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') # שינוי תקעים על ציר ה-y להצגת שמות חודשים במקום מספרים plt.yticks(ticks=np.arange(len(month_names)), labels=month_names) # הוספת כותרת למפת החום plt.title('Monthly Temperature Heatmap (Sequential Colormap)') # הצגת הגרף plt.grid(False) plt.show()

התאמת טווחי צבעים ועוצמה ב-Matplotlib. תמונה על ידי המחבר.

שילוב מפות צבעים קיימות

ניתן גם לשלב מפות צבעים קיימות על ידי חיבור כמה מפות צבעים כדי ליצור הדגמות ויזואליות מורכבות יותר.

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) # נורמליזציה של הנתונים להדגמה norm = Normalize(vmin=-5000, vmax=5000) # הגדרת גודל התרשים plt.figure(figsize=(12, 6)) # ציור נתוני הגובה הסינתטיים עם המפת צבעים המעורבת contour = plt.contourf(X, Y, Z, levels=100, cmap=custom_cmap, norm=norm) # הוספת פס צבעים כדי להראות את המפת צבעים המעורבת plt.colorbar(contour, label='Elevation (meters)') # הוספת תוויות לצירים plt.xlabel('Longitude') plt.ylabel('Latitude') # הוספת כותרת plt.title('Geographical Elevation Data with Blended Colormap (Viridis + Cividis)') # הצגת התרשים plt.show()

Matplotlib שילוב מפי צבעים קיימים. תמונה על ידי המחבר.

היפוך מפי צבעים באמצעות תוספת _r

אפשר להפוך כל מפת צבעים ב Matplotlib על ידי הוספת התוספת _r לשם שלה.

# הכנת הגרף עבור תרשים תחזית plt.figure(figsize=(12, 8)) # יצירת נורמליזציה מותאמת עבור טווח הצבעים norm = mcolors.Normalize(vmin=16, vmax=40) # ציור תרשים תחזית באמצעות imshow עם מפת צבעים רציפה 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 להצגת שמות חודשים במקום מספרים plt.yticks(ticks=np.arange(len(month_names)), labels=month_names) # הוספת כותרת plt.title('Temperature Heatmap (Sequential Colormap)') # הצגת הגרף plt.show()

Matplotlib היפוך מפי צבעים באמצעות תוספת _r. תמונה על ידי המחבר.

ניהול שגיאות נפוצות ב מפי צבעים ב Matplotlib

כאשר עובדים עם מפות צבעים ב-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 שלך, נסה את השיטה הבאה כדי לגש למפות צבעים.

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 בפונקציות הציור.

ארטיפקטים ותוצאות לא צפויות

כאשר עובדים עם מידע דיסקרטי או בעל רזולוציה נמוכה, ייתכן שיתעוררו פסי צבע בלתי מכוונים, ניגוד מופרז או זרימת צבע. הבעיה קורה כאשר המידע שלך בטווח מוגבל אבל מוצג עם מפת צבעים רציפה.

לפתרון הבעיה, השתמש ביותר נקודות מידע או כוונן את מספר רמות הצבע כדי להחליש את המעברים.

# הגדיל את מספר הקוביות במפת הצבעים 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)

אתה צריך גם להשתמש בקנה מידה עמיד למקרים חריגים על ידי שימוש בגבולות מותאמים שמוציאים מחוץ לטווח ערכים קיצוניים.

import numpy as np robust_vmin, robust_vmax = np.percentile(data, [2, 98]) # שימוש בפרצנטילים כדי להסיר מקרים חריגים קיצוניים plt.imshow(data, cmap='inferno', vmin=robust_vmin, vmax=robust_vmax)

מפת צבעים לא מתצוגה נכונה בגרפים תלת-מימדיים

אם יש בעיה עם אופן חלוקת המידע במשטח התלת-מימדי, מפות הצבעים עשויות להיות מתוצגות לא נכון בהדמיות תלת-מימדיות. כדי לפתור, וודא שהמידע של הציר זה מנורמל להתאים לטווח הצפוי של מפת הצבעים. גם, השתמש בגבולות מפת הצבעים המתאימים כדי לתפוס את כל טווח הערכים של z.

from mpl_toolkits.mplot3d import Axes3D # יצור נתונים דוגמה לגרף משטח תלת-מימדי X, Y = np.meshgrid(np.linspace(-5, 5, 50), np.linspace(-5, 5, 50)) Z = np.sin(np.sqrt(X**2 + Y**2)) # יצירת אובייקט צירים תלת-מימדי 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 לוויזואליזציה (זה נפלא לדעת שניהם), קרא את המדריך המהיר לבחירת צבעים ב Seaborn ולאחר מכן התחבר לקורס הקדמה לוויזואליזציה של נתונים עם Seaborn.

Source:
https://www.datacamp.com/tutorial/matplotlib-colormaps