【免费下载链接】cheatsheetsOfficial Matplotlib cheat sheets项目地址https://gitcode.com/gh_mirrors/che/cheatsheets点击查看免费下载Matplotlib Cheatsheets 是 Matplotlib 官方维护的速查资源仓库docs/index.rst是 Sphinx 文档站点的首页以网格形式集中呈现了全部交付物双页 Cheatsheets 速查表PDF、面向初学/进阶/技巧三阶段的 Handouts 讲义PDF并引导用户以 Issue、建议或 Pull Request 方式参与贡献。本文将以该首页为骨架结合仓库内 cheatsheets.tex、三份 handout-*.tex 源文件与顶层 Makefile 构建脚本完整还原这套速查资源的内容构成、源码实现与从零编译流程使读者既能按图索骥地使用速查表也能作为贡献者复现整套文档构建。文档首页的结构一份「入口即目录」的 Sphinx 页面docs/index.rst是整个文档站点的根页面全文可以拆解为三个语义块对应三类读者诉求Cheatsheets 区块使用sphinx_design提供的.. grid:: 2双列网格各放置一张 270px 宽的cheatsheets-1.png/cheatsheets-2.png预览图对应速查表 PDF 的两页并给出cheatsheets.pdf下载链接Handouts 区块使用.. grid:: 1 2 3 3四列网格依次展示handout-beginner.png、handout-intermediate.png、handout-tips.png三张预览图及其 PDF 下载链接Contribute 区块明确说明 Issues、建议或 Pull Request 均被仓库接受欢迎社区直接向matplotlib/cheatsheets提交。注意预览 PNG 与 PDF 均为构建产物而非源码它们由顶层 Makefile 的convertImageMagick从 XeLaTeX 编译出的 PDF 转制并在docs目标中通过cp ./cheatsheets*.p* ./docs/_build/html、cp ./handout-*.p* ./docs/_build/html拷贝进 Sphinx 的_build/html输出目录见 Makefile 第 53-56 行。因此该首页的图片与链接共同指向的是一套「LaTeX 源文件 → PDF → PNG」的生成链路。docs/index.rst本身还依赖docs/conf.py中声明的sphinx_design扩展见 docs/conf.py 第 17 行主题使用mpl_sphinx_theme并为 HTML 输出引入了css/normalize.css与css/landing.css两个自定义样式表。也就是说这个首页的网格布局能力来自 Sphinx 生态而非 RST 原生语法。Cheatsheets一张纸浓缩 Matplotlib 核心 API速查表对应的 LaTeX 源文件是 cheatsheets.tex采用10pt, landscape, a4paper的横版 A4 版面页边距压缩到 2.5mm正文以\scriptsize排印并分成 5 栏multicols*{5}以容纳海量信息。速查表共两页其内容模块几乎覆盖了 Matplotlib 日常绘图的全部高频知识点1. Quick start 与 Figure anatomy开篇即给出最简可运行示例import numpy as np、import matplotlib as mpl、import matplotlib.pyplot as plt随后用np.linspace(0, 2*np.pi, 100)构造数据、fig, ax plt.subplots()创建画布与坐标轴、ax.plot(X, Y, colorgreen)绘制、fig.savefig(figure.pdf)保存并plt.show()展示——这是一套完整的「初始化 → 绘图 → 输出」工作流模板。紧接着是 Anatomy of a figure 图示由 scripts/anatomy.py 生成figures/anatomy.pdf系统标注了 Figure、Axes、Spines、Title、X/Y axis label、Major/Minor tick 及其 label、Grid、Legend、Lineline plot、Markersscatter plot等图形元素。该脚本的坐标轴配置极具教学价值MultipleLocator(1.000)控制主刻度间距AutoMinorLocator(4)自动放置 4 个次刻度FuncFormatter(minor_tick)对次刻度格式化仅显示小数部分如0.25、0.75整刻度返回空串ax.tick_params(whichmajor|minor, width…, length…, labelsize…)分别定制主/次刻度外观通过path_effects[withStroke(linewidth5, foregroundw)]为标注圆环添加白色描边保证文字可读性。2. 布局与子图Subplots layout速查表给出四种坐标轴布局手段及其关键参数subplots如fig, axs plt.subplots(3, 3)批量创建子图网格gridspec(rows, cols, …)通过ax G[0, :]实现跨行/跨列的不规则切片布局ax.inset_axes(extent)在坐标轴内嵌局部放大图make_axes_locatable(ax)配合ax d.new_horizontal(10%)为坐标轴腾出横向附属区域常用于放置 colorbar。3. Basic plots 与 Advanced plots 参数矩阵速查表以「函数签名 关键参数」表格形式总结了 12 种基础图与 8 种进阶图类别函数关键参数基础plot[X], Y, [fmt], color, marker, linestyle基础scatterX, Y, [s]izes, [c]olors, marker, cmap基础bar[h]x, height, width, bottom, align, color基础imshowZ, cmap, interpolation, extent, origin基础contour[f][X], [Y], Z, levels, colors, extent, origin基础pcolormesh[X], [Y], Z, vmin, vmax, cmap基础quiver[X], [Y], U, V, C, units, angles基础pieX, explode, labels, colors, radius基础textx, y, text, va, ha, size, weight, transform基础fill[_between][x]X, Y1, Y2, color, where进阶stepX, Y, [fmt], color, marker, where进阶boxplotX, notch, sym, bootstrap, widths进阶errorbarX, Y, xerr, yerr, fmt进阶histX, bins, range, density, weights进阶violinplotD, positions, widths, vert进阶barbs[X], [Y], U, V, C, length, pivot, sizes进阶eventplotpositions, orientation, lineoffsets进阶hexbinX, Y, C, gridsize, bins其中参数标记用「加粗 必填、灰色 可选」区分\optional与\mandatory宏见 cheatsheets.tex 第 152-156 行并在 PDF 中使用\pdftooltip嵌入悬停提示。例如fmt参数的工具提示解释了ro即红色圆点格式串interpolation参数列出nearest, bilinear, bicubic, spline16, spline36, hanning, hamming, hermite, kaiser, quadric, catrom, gaussian, bessel, mitchell, sinc, lanczos全部取值Z参数则区分了 (M,N) 标量数据、(M,N,3) RGB0-1 浮点或 0-255 整数与 (M,N,4) RGBA 三种输入形态cmap参数完整列出 Uniform、Sequential、Diverging、Cyclic、Qualitative 五大类共 40 余个内置 colormap 名称。4. Scales、Projections 与线型/标记/颜色坐标轴刻度类型ax.set_[xy]scale(scale, …)支持linear任意值、log要求值 0、symlog任意值、logit要求 0 值 1四种投影subplot(…, projectionp)支持ppolar、p3d并可结合 Cartopy 使用pccrs.Orthographic()等地图投影线条与标记以整幅linestyles.pdf/markers.pdf图示展示线型与标记全集颜色体系速查表给出 6 种颜色书写方式——Cn默认色环索引如C0、x单字符颜色、name命名颜色、(R,G,B[,A])RGB/RGBA 元组、#RRGGBB[AA]十六进制、x.y灰度值。5. Colormaps 大全与 Tick 控制第二页集中展示五大类 colormap 的色带预览Uniformviridis,plasma,inferno,magma,cividis、SequentialGreys至YlGn共 18 个、DivergingPiYG至seismic共 12 个、QualitativePastel1至tab20c共 12 个以及 Miscellaneousterrain,ocean,cubehelix,rainbow,twilight。Tick 部分则给出两条核心调用链from matplotlib import ticker ax.[xy]axis.set_[minor|major]_locator(locator) # 例如 MultipleLocator(0.2) ax.[xy]axis.set_[minor|major]_formatter(formatter)6. Ornamentslegend / colorbar / annotateax.legend(…)参数包括 handles、labels、loc、title、frameonax.colorbar(…)参数包括 mappable、ax、cax、orientationax.annotate(…)必填text、xy、xytext可选xycoords、textcoords、arrowprops。Legend 放置一栏还给出了完整的 loc 编号表2 左上、9 上中、1 右上、6 左中、10 居中、7 右中、3 左下、8 下中、4 右下以及配合bbox_to_anchor(x, y)的 A–L 十二种图外定位组合如 A: upper right /(-0.1, 0.9)、D: upper left /(0.1, -0.1)、K: lower center /(0.5, 1.1)。7. 交互、动画与样式事件处理fig.canvas.mpl_connect(button_press_event, on_click)绑定回调动画FuncAnimation(plt.gcf(), animate, interval5)回调中line.set_ydata(np.sin(Ti/50))更新数据样式plt.style.use(style)速查表实测展示default、classic、grayscale、ggplot、seaborn-v0_8、fast、bmh、Solarize_Light2、seaborn-v0_8-notebook九种内置样式对比图。8. Quick reminder、How do I… 与性能提示「Quick reminder」速查块列出高频 APIax.grid()、ax.set_[xy]lim(vmin, vmax)、ax.set_[xy]label(label)、ax.set_[xy]ticks(ticks, [labels])、ax.set_title(title)、ax.tick_params(width10, …)、fig.suptitle(title)、fig.tight_layout()、plt.gcf()/plt.gca()、mpl.rc(axes, linewidth1, …)、fig.patch.set_alpha(0)以及 Matplotlib 的 mathtext 语法r$\frac{-e^{i\pi}}{2^n}$。「How do I …」问答块覆盖 20 余个高频诉求例如调整图形尺寸fig.set_size_inches(w, h)保存透明图形fig.savefig(figure.pdf, transparentTrue)清除画布/坐标轴fig.clear()/ax.clear()关闭所有图形plt.close(all)移除刻度/刻度标签ax.set_[xy]ticks([])/ax.set_[xy]ticklabels([])旋转刻度标签ax.tick_params(axisx, rotation90)隐藏顶轴脊线ax.spines[top].set_visible(False)隐藏图例边框ax.legend(frameonFalse)误差带ax.fill_between(X, Yerror, Y-error)矩形补丁ax.add_patch(plt.Rectangle((0, 0), 1, 1))竖线ax.axvline(x0.5)透明效果ax.plot(…, alpha0.25)反转/离散 colormapplt.get_cmap(viridis_r)/plt.get_cmap(viridis, 10)短暂显示图形fig.show(blockFalse)time.sleep(1)「Performance tips」块则给出三组「慢 vs 快」对照scatter(X, Y)慢优于plot(X, Y, markero, ls)快循环逐点plot(i, X[i], o)慢优于一次plot(X, markero, ls)快cla(); imshow(…); canvas.draw()慢优于im.set_data(…); canvas.draw()快。速查表末尾还附有交互快捷键表CtrlS保存、CtrlW关闭、r重置视图、f全屏、b/f回退/前进视图、p平移、o框选缩放、x/y单轴平移缩放、g/G次/主网格开关、l/LX/Y 轴对数线性切换以及 Rougier 提出的「Ten simple rules for better figures」了解受众、明确信息、适配图形、图注不可省略、不要轻信默认值、有效使用颜色、不误导读者、避免图表垃圾、信息胜过美观、选对工具。Handouts面向三阶段用户的精编讲义首页 Handouts 区块对应三份独立 LaTeX 文件每份均为横版 A4、三栏排版、一页篇幅并在页脚注明「Matplotlib 3.10.8 handout」、CC-BY 4.0 许可与 NumFOCUS 支持。它们分别面向初学者、进阶用户与技巧爱好者Beginner四步上手 选择 / 微调 / 组织 / 标注 / 探索 / 保存handout-beginner.tex 用编号框给出了最朴素的工作流# 1 Initialize import numpy as np import matplotlib.pyplot as plt # 2 Prepare X np.linspace(0, 10*np.pi, 1000) Y np.sin(X) # 3 Render fig, ax plt.subplots() ax.plot(X, Y) plt.show() # 4 Observe「Choose」小节给出 8 种图的最小示例ax.scatter(X, Y)、ax.bar(X, Y)、ax.imshow(Z)、ax.contourf(Z)、ax.pie(Z)、ax.hist(Z)、ax.errorbar(X, Y, Y/4)、ax.boxplot(Z)。「Tweak」小节展示colorblack、linestyle--、linewidth5、markero四种最常用样式参数。「Organize」小节演示ax.plot(X, Y1, X, Y2)同轴多曲线、plt.subplots(2, 1)上下分栏、plt.subplots(1, 2)左右分栏。「Label」小节演示fig.suptitle(None)、ax.set_title(A Sine wave)、ax.set_xlabel(Time)。「Save」小节强调位图与矢量双格式保存fig.savefig(my-first-figure.png, dpi300)与fig.savefig(my-first-figure.pdf)。Intermediate解剖图形层级与进阶控制handout-intermediate.tex 开篇即点明「一张 Matplotlib 图形由层级化元素构成且每一层都可修改」随后以anatomy.pdf图示展开Figure / Axes / Spinesplt.subplots(3, 3)配合axs[0, 0].set_facecolor(#ddddff)逐个着色fig.add_gridspec(3, 3)fig.add_subplot(gs[0, :])创建跨列坐标轴ax.spines[top].set_color(None)隐藏脊线Ticks labelsMultipleLocator(0.2)设置次刻度间距、ScalarFormatter()格式化次刻度、ax.tick_params(axisx, whichminor, rotation90)旋转次刻度标签Lines markersax.plot(X, Y, C1o:, markevery50, mec1.0)—— 一个参数串同时指定颜色C1、标记o、虚线:并借助markevery稀疏标记、mec设置标记边缘色Scales projectionsax.set_xscale(log)对数坐标Text ornamentsax.fill_betweenx([-1, 1], [0], [2*np.pi])绘制区间背景ax.text(0, -1, r Period $\Phi$)插入含 mathtext 的标注Legendax.legend(bbox_to_anchor(0,1,1,.1), ncol2, modeexpand, loclower left)实现跨轴宽度的双列图例Annotationax.annotate(A, (X[250],Y[250]), (X[250],-1), hacenter, vacenter, arrowprops{arrowstyle: -, color: C1})Size DPI附有一则「两栏 A4 论文插图尺寸推算」的实用示例——页宽 21cm、两侧各 2cm 边距、栏间距 1cm 时单栏宽度(21 - 2*2 - 1)/2 8cm按 2.54cm/英寸换算得figsize(3.15, 3.15)再配合fig plt.figure(figsize(3.15, 3.15), dpi50)与plt.savefig(figure.pdf, dpi600)实现低内存预览、高分辨率输出。Tips12 个让图形更专业的技巧handout-tips.tex 汇集了日常出图中最实用的技巧透明度Transparency多层ax.scatter(X, Y, 40, C1, lw0, alpha0.1)叠加用半透明展示点密度、刻画数据前沿栅格化Rasterization对包含 10_000 点的大散点图ax.scatter(X, Y, rasterizedTrue)栅格化以省内存其余矢量元素保持不变输出时fig.savefig(rasterized-figure.pdf, dpi600)离线渲染Offline rendering通过 Agg 后端FigureCanvas(Figure())canvas.draw()np.array(canvas.renderer.buffer_rgba())直接渲染到内存数组连续色取值cmap plt.get_cmap(Oranges)后以cmap([0.2, 0.4, 0.6, 0.8])在色带上采样喂给ax.hist(X, 2, histtypebar, colorcolors)文字描边matplotlib.patheffects的fx.Stroke(linewidth3, foreground1.0)与fx.Normal()组合提升文字可读性多线段一图用None作为分隔符把多条折线合并进单次ax.plot(X, Y, black)圆点虚线linestyle(0, (0.01, 1))配合dash_capstyleround得到圆头点线叠加双投影坐标轴fig.add_axes([0, 0, 1, 1], labelcartesian)与fig.add_axes([0, 0, 1, 1], labelpolar, projectionpolar)叠加笛卡尔与极坐标视图Colorbar 尺寸控制plt.colorbar(im, fraction0.046, pad0.04)微调色条占比与间距cb.set_ticks([])移除刻度排版瘦身循环ax.get_xticklabels(whichboth)并tick.set_fontname(Roboto Condensed)用窄体字体压缩刻度标签宽度去除边距tight_layout()收拢白边残余边距可用 TeX Live 附带的pdfcrop工具裁剪粗线条填充纹plt.rcParams[hatch.color] cmap(0.2)、plt.rcParams[hatch.linewidth] 8配合ax.bar(X, Y, colorcmap(0.6), hatch/)获得醒目填充纹理。从零构建字体、图形、PDF 与站点的一体化流程docs/index.rst展示的 PDF 与 PNG 均产自一条完整链路顶层 Makefile 用all: figures cheatsheets handouts docs串起全部产物准备字体make -C fonts即 fonts/Makefile通过wget下载 Roboto、Roboto Mono、Roboto Slab、Source Code Pro、Source Sans Pro、Source Serif Pro 与 Pacifico 七套字体到/tmp再解压进fonts/对应子目录LaTeX 通过fontspec\setmainfont{Source Serif Pro}、\setsansfont{Roboto}、\setmonofont{Source Code Pro}等命令按文件名规则如fonts/roboto/Roboto-.ttf加载见 cheatsheets.tex 第 51-89 行。若希望 Matplotlib 也能发现这些字体可在$HOME/.config/fontconfig/fonts.conf中加入dir/path/to/cheatsheets/fonts//dir目录声明详见 README.md。生成全部插图figures目标执行cd scripts for script in *.py; do MPLBACKENDagg python $script; done在纯 Agg 后端下批量运行 scripts/ 目录内 30 余个绘图脚本如 scripts/anatomy.py、basic-plots.py、colormaps.py、tick-locators.py、tip-hatched.py等输出到figures/随后用pdfcrop对adjustments.pdf、annotate.pdf、colornames.pdf、tick-formatters.pdf等 12 个图执行白边裁剪。所有绘图脚本共用styles/base.mplstyle与styles/plotlet.mplstyle等自定义样式例如 scripts/anatomy.py 通过mpl.style.use(ROOT_DIR / styles/base.mplstyle)统一风格并用np.random.seed(123)固定随机种子保证图形可复现。编译 PDF 并转 PNGxelatex cheatsheets.tex编译两页速查表随后convert -density 150 -alpha remove -depth 8 cheatsheets.pdf -scene 1 cheatsheets.png用 ImageMagick 转出首页所需的cheatsheets-1.png/cheatsheets-2.png三份讲义同样经xelatex编译并转 PNG。构建 Sphinx 文档docs目标执行make -C docs/ html见 docs/Makefile注意默认带-W将警告视为错误再把cheatsheets*.p*与handout-*.p*拷贝进_build/html最终渲染出docs/index.rst所定义的下载首页。质量检查check目标依次运行 check-matplotlib-version.py、check-num-pages.sh断言速查表 2 页、各讲义 1 页、check-diffs.py 与 check-links.py校验 PDF 内链接有效性确保每次构建产物符合预期。依赖清单集中在 requirements/requirements.in如sphinx_design、mpl_sphinx_theme、XeLaTeX、ImageMagick 等经 requirements/Makefile 固化到 requirements/requirements.txt贡献者在干净环境中可通过make requirements一键对齐工具链。参与贡献与许可首页 Contribute 区块明确表示Issues、建议与 Pull Request 均被欣然接受这是官方仓库对社区贡献的正式邀请。结合上文可见一套完整贡献路径大致为修改scripts/*.py生成新的示例图、调整cheatsheets.tex/handout-*.tex中的排布与说明、在docs/index.rst中更新预览与链接最后运行make全量构建并执行make check自检。版权与许可方面速查表与三份讲义页脚均标注「Copyright (c) 2021 Matplotlib Development Team」「Released under a CC-BY 4.0 International License」「Supported by NumFOCUS」仓库根目录的 LICENSE.txt 提供完整许可文本logos/numfocus.png则作为赞助方标识出现在速查表末页。当前仓库所有产出物均标注 Matplotlib 3.10.8 版本读者在较新或较旧版本下使用速查表时应对个别 API 差异保持留意例如内置样式随版本演进的取舍。赞分享【免费下载链接】cheatsheetsOfficial Matplotlib cheat sheets项目地址https://gitcode.com/gh_mirrors/che/cheatsheets点击查看免费下载相关推荐Rolldown 仓库开发导航从三层架构、internal-docs 文档体系到 just 构建测试与 CI 流程Rolldown 仓库开发导航从三层架构、internal docs 文档体系到 just 构建测试与 CI 流程 Rolldown 是一个使用 Rust 与构建工具前端构建开发工具Thorium 浏览器为关注性能与媒体解码的 Chromium 用户准备的安装与配置指南Thorium 浏览器为关注性能与媒体解码的 Chromium 用户准备的安装与配置指南 Thorium 是一个以放射性元素钍命名的 Chromium 浏桌面应用跨平台Slim 仓库中的 Docker Engine APISwagger 定义、类型体系与文档工作流全解析Slim 仓库中的 Docker Engine APISwagger 定义、类型体系与文档工作流全解析 导读 Docker Engine API 是 Dock云原生CLI应用安全上一篇Hoppscotch安全最佳实践保护API请求数据的10个技巧下一篇为什么选择sdat2imgAndroid ROM开发者必备的镜像转换神器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考