如何在Matplotlib绘图标题中格式化显示numpy.ndarray类型数据?
解决方案
问题出在直接将numpy.ndarray转为字符串时,会输出数组的完整结构(包含array(...)和dtype信息),而非单纯的数值。要实现指定格式的标题,需要先提取数组中的标量值,再进行格式化。
步骤1:提取标量值
由于global_mean.data是单元素数组,可通过.item()方法取出其中的Python数值:
scalar_value = global_mean.data.item()
步骤2:格式化标题文本
使用Python的字符串格式化语法保留两位小数,推荐使用f-string(简洁直观):
plt.title(f"Mean = {scalar_value:.2f}", fontsize=5, loc='right')
完整代码示例
import matplotlib.pyplot as plt import numpy as np # 模拟你的变量 global_mean = type('obj', (), {'data': np.array(0.12485412, dtype=np.float32)})() # 设置标题 plt.title(f"Mean = {global_mean.data.item():.2f}", fontsize=5, loc='right') plt.plot([1,2,3]) # 示例绘图 plt.show()
其他可选格式化方式
如果习惯其他语法,也可以用以下两种方式:
- 使用
format函数:plt.title("Mean = {:.2f}".format(global_mean.data.item()), fontsize=5, loc='right') - 使用%格式化:
plt.title("Mean = %.2f" % global_mean.data.item(), fontsize=5, loc='right')
内容的提问来源于stack exchange,提问作者nuvolet
相关产品推荐
相关产品推荐

