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

Matplotlib文本框文字格式设置及空格缺失问题求助

解决Matplotlib文本框行内粗细不同及空格问题

问题分析

  • 原代码全局设置fontweight="bold",导致所有行都加粗,无法实现第一行加粗、第二行不加粗的需求。
  • 第二行使用数学模式($...$),数学模式会自动忽略空格,因此出现文字间无空格的问题。

解决方案

利用Matplotlib支持的富文本格式控制单一行的加粗,同时避免在普通文本中使用数学模式以保留空格:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

# 用\textbf{}包裹第一行实现加粗,第二行直接写普通文本(支持Unicode符号≥)
textstr = r"\textbf{Greater Sample Size:}\nNo. of Sites ≥ 3"
props = dict(boxstyle='round', facecolor='wheat', alpha=0.5)

# 移除全局fontweight参数,由文本内的格式命令控制粗细
ax.text(0.05, 0.95, textstr, transform=ax.transAxes, fontsize=14, 
        verticalalignment='top', bbox=props, usetex=False)

plt.show()

补充说明

  • 如果你的环境已启用LaTeX(设置usetex=True),也可以将第二行改为数学模式并手动添加空格,写法如下(需系统安装LaTeX环境):
    textstr = r"\textbf{Greater Sample Size:}\n$No.\ of\ Sites \geq 3$"
    ax.text(0.05, 0.95, textstr, transform=ax.transAxes, fontsize=14, 
            verticalalignment='top', bbox=props, usetex=True)
    
  • 默认usetex=False时,Matplotlib内置渲染器已支持\textbf{}这类基础格式命令,无需额外依赖LaTeX。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:10:23