You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matplotlib图表旁添加可设置样式的文本面板?

在Matplotlib图表旁添加自定义样式文本面板的实现方法

可以直接用子图实现这个需求,关闭子图坐标轴后,就能在上面自由添加不同样式的文本,完全满足你对颜色、粗细、样式的自定义要求。

完整代码示例

import matplotlib.pyplot as plt

# 创建画布,分主图和文本面板两个子图,调整宽度比例让面板更窄
fig, (ax_main, ax_text) = plt.subplots(ncols=2, figsize=(10, 6), width_ratios=[3, 1])

# 绘制主图表(示例内容,按需替换)
ax_main.plot([1,2,3,4], [1,4,9,16], color='blue', linewidth=2)
ax_main.set_title('主图表')
ax_main.set_xlabel('X轴')
ax_main.set_ylabel('Y轴')

# 配置文本面板:隐藏坐标轴,可选设置背景色区分区域
ax_text.axis('off')
ax_text.set_facecolor('#f0f0f0')

# 添加不同样式的文本,用轴坐标定位(0-1范围,方便布局)
# 加粗红色文本
ax_text.text(0.1, 0.9, '加粗红色文本', fontsize=12, fontweight='bold', color='#ff3333', transform=ax_text.transAxes)
# 斜体绿色文本
ax_text.text(0.1, 0.7, '斜体绿色文本', fontsize=12, fontstyle='italic', color='#33aa33', transform=ax_text.transAxes)
# 大号常规文本
ax_text.text(0.1, 0.5, '大号常规文本', fontsize=14, color='black', transform=ax_text.transAxes)
# 下划线蓝色文本
ax_text.text(0.1, 0.3, '下划线蓝色文本', fontsize=12, color='#3333ff', underline=True, transform=ax_text.transAxes)

plt.tight_layout()
plt.show()

关键细节说明

  • width_ratios:调整主图和文本面板的宽度占比,数值按需修改即可。
  • ax_text.axis('off'):彻底隐藏子图的坐标轴,只保留空白面板区域。
  • transform=ax_text.transAxes:使用子图的相对坐标(左下角为(0,0),右上角为(1,1)),不用关心实际像素,布局更灵活。
  • 文本样式控制:
    • 粗细:通过fontweight设置,可选normal/bold/light等
    • 样式:通过fontstyle设置,可选normal/italic/oblique
    • 颜色:支持颜色名(如'red')、十六进制值(如'#ff3333')
    • 额外效果:用underline=True添加下划线,fontsize调整字号

关于Textbox的说明

matplotlib.widgets.Textbox是用来做交互式输入的组件,适合让用户手动输入文本的场景,和你需要的「自定义样式文本展示面板」需求不匹配,所以用子图+text()的方式更合适。

内容的提问来源于stack exchange,提问作者Apollo11Mission

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 23:10:43