如何在matplotlib中为坐标轴刻度标签添加路径效果
要为刻度标签添加路径效果,你只需要获取到对应刻度的Text对象,再调用其set_path_effects()方法设置路径效果即可,操作逻辑和设置坐标轴/colorbar标签完全一致。
场景1:为colorbar的刻度标签添加效果
colorbar的刻度所属的轴对象可以通过cb.ax获取,垂直colorbar的刻度默认在y轴,水平colorbar的刻度默认在x轴:
import matplotlib.patheffects as pe # 你的原有colorbar创建逻辑 # cb = fig.colorbar(...) # 垂直colorbar:设置y轴刻度标签效果 for tick_label in cb.ax.get_yticklabels(): tick_label.set_path_effects([pe.withStroke(linewidth=1, foreground="b")]) # 水平colorbar:设置x轴刻度标签效果 # for tick_label in cb.ax.get_xticklabels(): # tick_label.set_path_effects([pe.withStroke(linewidth=1, foreground="b")])
场景2:为普通坐标轴的刻度标签添加效果
如果是给主图的x、y轴刻度添加效果,直接从绘图的Axes对象获取刻度标签即可:
import matplotlib.pyplot as plt import matplotlib.patheffects as pe fig, ax = plt.subplots() # 你的绘图逻辑... # 设置x轴刻度标签效果 for tick_label in ax.get_xticklabels(): tick_label.set_path_effects([pe.withStroke(linewidth=1, foreground="b")]) # 设置y轴刻度标签效果 for tick_label in ax.get_yticklabels(): tick_label.set_path_effects([pe.withStroke(linewidth=1, foreground="b")]) plt.show()
额外说明
你也可以在循环中同时调整刻度标签的其他属性,比如下面的示例实现白字加黑描边的效果,适合放在深色背景的图上:
for tick_label in ax.get_xticklabels(): tick_label.set_fontsize(12) tick_label.set_color("white") tick_label.set_path_effects([pe.withStroke(linewidth=2, foreground="black")])
内容的提问来源于stack exchange,提问作者Derek Eden
相关产品推荐
相关产品推荐

