南宁建站软件wordpress大数据插件
南宁建站软件,wordpress大数据插件,wordpress iis7 伪静态规则,网站 设计 工具#x1f4ca; 带你手把手读懂这段超详细的 Matplotlib 绘图代码
大家好呀#xff5e;今天不讲理论#xff0c;不堆概念#xff0c;我们就逐行拆解一段完整的 Matplotlib 代码#xff0c;看看高手是怎么把一张图画得既专业又好看的#xff01; 这段代码绘制了经典的 sin(… 带你手把手读懂这段超详细的 Matplotlib 绘图代码大家好呀今天不讲理论不堆概念我们就逐行拆解一段完整的 Matplotlib 代码看看高手是怎么把一张图画得既专业又好看的这段代码绘制了经典的sin(x)和cos(x)函数图像还加了注释、标记、填充区域、坐标轴美化……堪称“教科书级”示例。更重要的是——代码一行都不能删每一行都有它的作用准备好了吗我们从头开始一步一步来✅ 第一步导入库 中文支持import matplotlib.pyplot as plt import numpy as np # 全局配置中文字体与负号显示 plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] Falsematplotlib.pyplot是绘图核心numpy用来生成数学数据。下面两行是解决中文显示问题的经典配置SimHei黑体让图中的中文正常显示axes.unicode_minusFalse避免负号显示成方框比如-π变成 □π。❝ 如果你用 Mac可能要把SimHei换成Arial Unicode MS或PingFang SC。✅ 第二步创建画布# 创建画布与坐标轴推荐写法 fig, ax plt.subplots(figsize(10, 6))使用plt.subplots()是现代 Matplotlib 的推荐写法比直接用plt.plot()更灵活。figsize(10, 6)设置图像宽高为 10×6 英寸避免图形太小看不清。✅ 第三步生成数据# 生成数据 x np.linspace(-np.pi, np.pi, 256, endpointTrue) y1 np.sin(x) # sin(x) y2 np.cos(x) # cos(x)linspace在 $[-π, π]$ 区间生成 256 个均匀点足够平滑。y1和y2分别是正弦和余弦函数值。✅ 第四步画两条曲线# 绘制曲线 ax.plot(x, y1, b-, lw2.5, label正弦 sin(x)) ax.plot(x, y2, r-, lw2.5, label余弦 cos(x))b-表示蓝色实线r-是红色实线lw2.5让线条更粗视觉效果更好label用于后面生成图例legend。✅ 第五步设置坐标轴范围# 设置坐标轴范围 ax.set_xlim(x.min() * 1.5, x.max() * 1.5) ax.set_ylim(y2.min() * 1.5, y2.max() * 1.5)X 轴左右多留点空白乘以 1.5Y 轴同理避免曲线贴边。✅ 第六步自定义刻度标签用 LaTeX# 设置刻度与标签LaTeX 格式 ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi]) ax.set_xticklabels([r$-\pi$, r$-\pi/2$, r$0$, r$\pi/2$, r$\pi$]) ax.set_yticks([-1, 0, 1])手动指定 X 轴的关键位置-π, -π/2, ..., π用r$...$写LaTeX 数学符号让标签变成漂亮的公式Y 轴只标 -1, 0, 1简洁明了。✅ 第七步把坐标轴移到原点十字交叉# 移动坐标轴到原点十字交叉 ax.spines[right].set_color(none) ax.spines[top].set_color(none) ax.xaxis.set_ticks_position(bottom) ax.spines[bottom].set_position((data, 0)) ax.yaxis.set_ticks_position(left) ax.spines[left].set_position((data, 0))这是最酷的一步默认坐标轴在边框但这里隐藏了右边和上边的边框set_color(none)把 X 轴移到 Y0 的位置Y 轴移到 X0 的位置最终形成过原点的十字坐标系数学感拉满✅ 第八步加标题 签名彩蛋# 添加标题和签名文本 ax.set_title(绘图示例之 cos(x) sin(x), fontsize16, colorgreen) ax.text(2.1, -1.4, -To be number.wan, fontsize10, colorpurple)标题用绿色居中显示右下角加了一行紫色小字“-To be number.wan”像是作者的个性签名 ✅ 第九步显示图例# 图例 ax.legend(locupper left, fontsize12)根据前面label自动生成图例放在左上角upper left字体大小 12。✅ 第十步标记关键点 添加注释# 标记关键点并添加注释 t1 -np.pi t2 2 * np.pi / 3 # 散点标记 ax.scatter([t1], [np.cos(t1)], s50, colorb) ax.scatter([t2], [np.sin(t2)], s50, colorr) # 注释sin(2π/3) ax.annotate(r$\sin(\frac{2\pi}{3})\frac{\sqrt{3}}{2}$, xy(t2, np.sin(t2)), xycoordsdata, xytext(10, 30), textcoordsoffset points, fontsize14, arrowpropsdict(arrowstyle-, connectionstylearc3,rad.2)) # 注释cos(-π) ax.annotate(r$\cos(-\pi)-1$, xy(t1, np.cos(t1)), xycoordsdata, xytext(0, -40), textcoordsoffset points, fontsize14, arrowpropsdict(arrowstyle-, connectionstylearc3,rad.2))用scatter在特定点画小圆点annotate添加带箭头的注释内容还是 LaTeX 公式xytext控制注释文本的位置偏移arrowprops设置箭头样式rad.2让箭头带点弧度更美观。✅ 第十一步填充特殊区域高阶技巧# 填充区域 # 区域1 ax.fill_between(x, np.abs(x) 0.5 , y1 , y10.5 , colorg, alpha0.8, labelsin(x)0.5 |x|0.5) # 区域2 mask2 (-2.5 x) (x -0.5) ax.fill_between(x, y2, wheremask2, colorpurple, alpha0.5, labelcos(x) in [-2.5, -0.5])⚠️ 注意第一行fill_between的写法其实有误参数顺序不对但你要求不改代码我们就照着解释。实际意图是区域1想填充满足|x| 0.5且sin(x) 0.5的部分但当前写法可能无效区域2正确填充了x ∈ [-2.5, -0.5]区间内的 cos(x) 曲线下方面积半透明紫色。❝ 小建议如果真要实现区域1应写成ax.fill_between(x, 0.5, y1, where(np.abs(x)0.5) (y10.5), ...)但既然你强调“不要改代码”我们就尊重原样✅ 第十二步放大刻度字体 加网格# 设置刻度字体大小 for label in ax.get_xticklabels() ax.get_yticklabels(): label.set_fontsize(18) # 网格与显示 ax.grid(True) plt.tight_layout() # 自动调整布局防止标签被裁剪 plt.show()刻度数字放大到 18 号投影/截图都清晰grid(True)显示背景网格方便读数tight_layout()防止标题、标签被裁掉最后plt.show()弹出图像 成果展示运行这段代码你会得到一张这样的图十字坐标轴穿过原点正弦蓝、余弦红曲线清晰标注关键点带公式注释有填充区域、网格、图例、中文标题连作者签名都有这已经不是“能画出来”而是“能拿去交作业/汇报”的级别了 结语Matplotlib 的魅力就在于基础简单上限极高。今天这段代码看似复杂其实每一步都是常用技巧的组合。建议你复制代码运行一遍逐行注释/取消注释看效果变化尝试修改颜色、范围、公式做出自己的版本❝记住所有可视化高手都是从模仿开始的。如果你觉得这篇推文有帮助欢迎点赞、在看、转发给需要的朋友也欢迎留言告诉我你还想拆解哪段代码我们下期见