Menu
CoddyTech

Matplotlib Cheat Sheet: דף עזר ל-Matplotlib

עודכן לאחרונה

Figure ו-axes

Figure הוא התמונה כולה. Axes הוא גרף אחד בתוכה, וכמעט כל קריאה למטה היא מתודה על ax.

משימהקוד
ייבוא pyplotimport matplotlib.pyplot as plt
Figure אחד עם גרף אחדfig, ax = plt.subplots()
קביעת הגודל באינצ'יםfig, ax = plt.subplots(figsize=(8, 4))
שרטוט על ה-axesax.plot(x, y)
הצגת ה-figureplt.show()
שמירה כ-PNG חדfig.savefig("chart.png", dpi=150, bbox_inches="tight")
שמירה כגרפיקה וקטוריתfig.savefig("chart.svg"), fig.savefig("chart.pdf")
רקע שקוףfig.savefig("chart.png", transparent=True)
סגירת figure כדי לפנות זיכרוןplt.close(fig)
סגנון pyplot מהיר לגרף אחדplt.plot(x, y) plt.title("Quick look") plt.show()

סוגי גרפים

משימהקוד
גרף קוויax.plot(x, y)
גרף פיזורax.scatter(x, y, s=20, alpha=0.7)
פיזור צבוע לפי ערך, עם color barpoints = ax.scatter(x, y, c=y, cmap="viridis") fig.colorbar(points, ax=ax)
גרף עמודותax.bar(cats, a)
גרף עמודות אופקיax.barh(cats, a)
עמודות מוערמותax.bar(cats, a, label="2025") ax.bar(cats, b, bottom=a, label="2026")
עמודות מקובצותpos = np.arange(len(cats)) ax.bar(pos - 0.2, a, width=0.4) ax.bar(pos + 0.2, b, width=0.4) ax.set_xticks(pos, labels=cats)
היסטוגרמהax.hist(data, bins=30)
Box plotax.boxplot([data, data * 2], tick_labels=["A", "B"])
Violin plotax.violinplot([data, data * 2])
גרף עוגהax.pie([40, 35, 25], labels=cats, autopct="%1.0f%%")
רצועה בין שתי עקומותax.fill_between(x, y - 0.2, y + 0.2, alpha=0.3)
Error barsax.errorbar([1, 2, 3], [4, 5, 3], yerr=[0.5, 0.3, 0.6], fmt="o", capsize=4)
גרף מדרגותax.step(x, y, where="mid")
Heatmap של מערך דו-ממדיimage = ax.imshow(np.random.default_rng(0).random((5, 5)), cmap="magma") fig.colorbar(image, ax=ax)
גרף קווי גובה ממולאX, Y = np.meshgrid(x, x) ax.contourf(X, Y, np.sin(X) * np.cos(Y), levels=20)
צפיפות של הרבה נקודותax.hexbin(data, data + np.random.default_rng(1).normal(size=200), gridsize=20)
קו ייחוס אופקי או אנכיax.axhline(0, color="gray", linestyle="--"), ax.axvline(5)
הצללת טווחax.axvspan(2, 4, alpha=0.2)

קווים, markers וצבעים

משימהקוד
צבע, עובי וסגנון קוax.plot(x, y, color="tab:red", linewidth=2, linestyle="--")
Markers על הנקודותax.plot(x, y, marker="o", markersize=4)
מחרוזת פורמט מקוצרתax.plot(x, y, "g--o")
שקיפותax.plot(x, y, alpha=0.5)
סגנונות קו"-", "--", "-.", ":"
קודים של markers"o", "s", "^", "x", ".", "*"
דרכים לציין צבע"tab:blue", "C1", "#1f77b4", (0.2, 0.4, 0.6)
n צבעים מתוך colormapcolors = plt.colormaps["viridis"](np.linspace(0, 1, 5))
מחזור צבעים משלכםax.set_prop_cycle(color=["#0b7285", "#e8590c", "#5f3dc4"])
עמודות עם קו מתאר ודוגמת קוויםax.bar(cats, a, color="white", edgecolor="black", hatch="//")

כותרות, תוויות ו-legend

משימהקוד
כותרת ותוויות ציריםax.set_title("Sales"), ax.set_xlabel("Month"), ax.set_ylabel("EUR")
הכול בקריאה אחתax.set(title="Sales", xlabel="Month", ylabel="EUR")
Legend מתוויות הקוויםax.plot(x, y, label="sin") ax.legend()
מיקום ה-legend ועמודותax.legend(loc="upper right", ncols=2, frameon=False)
Legend מחוץ לגרףax.legend(loc="center left", bbox_to_anchor=(1, 0.5))
טקסט במיקום של נתוןax.text(5, 0.5, "note")
הערה עם חץax.annotate("peak", xy=(1.57, 1), xytext=(3, 1.2), arrowprops=dict(arrowstyle="->"))
תוויות ערך על עמודותbars = ax.bar(cats, a) ax.bar_label(bars)
כותרת ל-figure כולוfig.suptitle("Q1 report")
נוסחאות מתמטיות בתוויותax.set_xlabel(r"$\alpha$ (rad)")

צירים, ticks וסקאלות

משימהקוד
גבולות הציריםax.set_xlim(0, 10), ax.set_ylim(bottom=0)
סקאלה לוגריתמיתax.set_yscale("log")
בחירת ticks והתוויות שלהםax.set_xticks([0, 5, 10], labels=["start", "middle", "end"])
סיבוב תוויות ה-ticksax.tick_params(axis="x", labelrotation=45)
קווי רשתax.grid(True, alpha=0.3)
ציר באחוזיםfrom matplotlib.ticker import PercentFormatter ax.yaxis.set_major_formatter(PercentFormatter(1.0))
מפריד אלפיםax.yaxis.set_major_formatter("{x:,.0f}")
הסתרת המסגרת העליונה והימניתax.spines[["top", "right"]].set_visible(False)
ציר y שני בצד ימיןax2 = ax.twinx() ax2.plot(x, y * 100, color="tab:orange")
אותה סקאלה בשני הציריםax.set_aspect("equal")
היפוך צירax.invert_yaxis()
הסתרת הצירים לגמריax.axis("off")
תוויות תאריך קריאותfig.autofmt_xdate()

Subplots ופריסה

plt.subplots(rows, cols) מחזיר מערך NumPy של axes. גשו אליו עם אינדקס כמו לכל מערך.

משימהקוד
רשת של גרפיםfig, axs = plt.subplots(2, 2, figsize=(8, 6))
שרטוט על אחד מהםaxs[0, 1].plot(x, y)
לולאה על כולםfor ax in axs.flat: ax.grid(True)
ציר משותף לכמה גרפיםfig, axs = plt.subplots(1, 3, sharey=True)
ריווח שמונע חפיפותfig, axs = plt.subplots(2, 2, layout="constrained")
תיקון חפיפות אחרי השרטוטfig.tight_layout()
עמודות ברוחב שונהfig, axs = plt.subplots(1, 2, width_ratios=[3, 1])
פריסה עם שמות ופאנל רחבfig, axd = plt.subplot_mosaic([["top", "top"], ["left", "right"]]) axd["top"].plot(x, y)
גרף קטן בתוך גרףinset = ax.inset_axes([0.6, 0.6, 0.35, 0.35])
הסתרת פאנל ריקaxs[0].axis("off")

סגנונות וברירות מחדל

משימהקוד
שימוש בסגנון מובנהplt.style.use("ggplot")
רשימת הסגנונותplt.style.available
מראה של seaborn בלי seabornplt.style.use("seaborn-v0_8-whitegrid")
סגנון ל-figure אחד בלבדwith plt.style.context("dark_background"): fig, ax = plt.subplots()
גודל גופן ברירת מחדלplt.rcParams["font.size"] = 12
גודל ורזולוציה ברירת מחדל ל-figureplt.rcParams["figure.figsize"] = (8, 4), plt.rcParams["figure.dpi"] = 120
חזרה לברירות המחדלplt.style.use("default")
Colormaps נפוצים: רציף, מתפצל, אפור"viridis", "coolwarm", "Greys"

גרפים מתוך pandas

pandas משרטט בעזרת Matplotlib. העבירו ax= כדי לשרטט לתוך ה-axes שלכם, או שמרו את ה-ax ש-pandas מחזיר.

משימהקוד
עמודות DataFrame לתוך ה-axes שלכםdf.plot(x="month", y="sales", ax=ax)
גרף עמודות של סיכום לפי קבוצהdf.groupby("city")["sales"].sum().plot.bar(ax=ax)
המשך עיצוב של מה ש-pandas שרטטax = df.plot(x="month", y="sales") ax.set_title("Sales")
עמודות ישירות לתוך Matplotlibax.plot(df["month"], df["sales"])

Matplotlib 3.11: צורות ישנות ומה לכתוב היום

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

משימהMatplotlib 3.11צורה ישנה
תוויות ל-box plotax.boxplot([data, data * 2], tick_labels=["A", "B"])labels=["A", "B"]
Box plot או violin plot אופקיax.boxplot(data, orientation="horizontal")vert=False
קבלת colormapplt.colormaps["viridis"]plt.cm.get_cmap("viridis")
סגנון seabornplt.style.use("seaborn-v0_8")plt.style.use("seaborn")

קוד ה-Matplotlib שצריך כדי להפוך נתונים לגרף ברור, מסודר לפי משימה: figure ו-axes, סוגי גרפים, קווים וצבעים, כותרות ו-legend, צירים ו-ticks, subplots ופריסה, סגנונות, ושרטוט מתוך pandas. כל שורה היא קטע קוד קצר שאפשר להדביק, ועוד שורה אחת שמסבירה מה הוא עושה.

הכול כאן משתמש בסגנון מונחה העצמים (fig, ax = plt.subplots(), ואז מתודות על ax) וכתוב ל-Matplotlib 3.11, הגרסה ש-Coddy מריץ. צורות ישנות כמו labels= ב-boxplot מופיעות רק בטבלה האחרונה, לצד מה שצריך לכתוב במקומן. הדוגמאות משתמשות ב-x = np.linspace(0, 10, 50), ב-y = np.sin(x) ובמדגם של ערכים מהתפלגות נורמלית בשם data. חדשים ב-Python עצמו? התחילו עם Python cheat sheet, ושמרו את דפי העזר של pandas, NumPy ו-scikit-learn לצד הדף הזה.

שאלות נפוצות על ה-Matplotlib Cheat Sheet

האם ה-Matplotlib cheat sheet הזה חינמי?
כן. ה-Matplotlib cheat sheet הזה חינמי לגמרי, בלי צורך בהרשמה. שמרו אותו במועדפים, או הדפיסו אותו ל-PDF מהדפדפן, וחזרו אליו בכל פעם שאתם צריכים את הקריאה המדויקת ל-legend, לרשת של subplots או ל-color bar.
מה ההבדל בין plt ל-ax?
plt.plot() משרטט על ה-axes הנוכחי, מה שמהיר לגרף בודד. fig, ax = plt.subplots() נותן לכם את ה-figure וה-axes כאובייקטים, כך ש-ax.plot() תמיד משרטט בדיוק איפה שהתכוונתם. השתמשו בסגנון ה-ax לכל דבר עם יותר מגרף אחד, ולקוד שאתם מתכוונים לשמור.
איך משנים את הגודל של ה-figure?
העבירו figsize באינצ'ים כשאתם יוצרים את ה-figure: fig, ax = plt.subplots(figsize=(10, 5)). כדי לשנות את ברירת המחדל לכל figure, הגדירו plt.rcParams["figure.figsize"] = (10, 5). הגודל בפיקסלים של קובץ שנשמר הוא figsize כפול dpi.
איך שומרים גרף ברזולוציה גבוהה?
קראו ל-fig.savefig("chart.png", dpi=300, bbox_inches="tight"). dpi גבוה יותר נותן PNG חד יותר, ו-bbox_inches="tight" חותך שוליים ריקים. להדפסה או למצגות, שמרו כ-SVG או PDF, שנשארים חדים בכל גודל.
למה הכותרות והתוויות של ה-subplots שלי חופפות?
צרו את ה-figure עם layout="constrained", כמו ב-plt.subplots(2, 2, layout="constrained"), ו-Matplotlib יפנה מקום לכותרות, לתוויות ול-color bars. על figure קיים, קראו ל-fig.tight_layout() אחרי השרטוט.
באיזו גרסה של Matplotlib דף העזר הזה עוסק?
Matplotlib 3.11, הגרסה ש-Coddy מריץ. קריאות שגרסאות חדשות יותר הסירו או שינו את שמן, כמו labels= ב-boxplot (היום tick_labels=) ו-plt.cm.get_cmap (היום plt.colormaps[...]), נמצאות בטבלה האחרונה לצד מה שצריך לכתוב במקומן.
אפשר להריץ קוד Matplotlib אונליין?
כן. ה-Matplotlib playground החינמי מריץ Python עם Matplotlib, NumPy, pandas ו-scikit-learn בדפדפן ומציג את הגרפים לצד הפלט, כך שאפשר להדביק כל קטע קוד מדף העזר הזה ולראות את הגרף בלי להתקין כלום. קורס ה-Machine Learning של Coddy משתמש בגרפים האלה כדי לחקור נתונים לפני אימון מודל.
איור של שפות התכנות ב-Coddy

ללמוד Matplotlib עם Coddy

להתחיל