如何修改Matplotlib中AnchoredText对象的文本颜色?
修改Matplotlib AnchoredText文本颜色的方法
不用重新创建AnchoredText元素,直接操作它内部的文本对象就能改颜色:
核心代码
# 修改为目标颜色,比如切换到暗色主题时设为白色,亮色设为黑色 at.text.set_color("white")
为什么之前的方法不行
at.set_color():AnchoredText类没有这个方法,调用会报错at.patch.set_color():这个是修改文本框的背景/边框颜色,不是文本本身的颜色at.prop["color"]:at.prop返回的是FontProperties对象,它不支持字典式赋值,所以会触发TypeError
配合主题切换的示例
假设你有一个按钮触发主题切换,回调函数可以这么写:
def on_theme_toggle(self): # 切换主题状态 self.dark_mode = not self.dark_mode target_color = "white" if self.dark_mode else "black" # 修改AnchoredText文本颜色 self.at.text.set_color(target_color) # 这里可以添加其他主题切换的逻辑(比如坐标轴、背景色等) # 刷新图表 self.abs_chart.figure.canvas.draw_idle()
内容的提问来源于stack exchange,提问作者Radek D
相关产品推荐
相关产品推荐

