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

如何修改Matplotlib的y轴刻度标签?解决转换错误

解决Matplotlib散点图布尔值y轴刻度标签的ConversionError问题

核心原因

Matplotlib会默认把布尔值映射为数值(True对应1,False对应0),直接设置字符串刻度标签时,会因类型不兼容触发转换错误。

解决方案

先指定y轴刻度的数值位置,再对应替换为布尔值文本标签,具体步骤如下:

1. 正常绘制散点图

先传入你的布尔值数据完成绘图:

import matplotlib.pyplot as plt

# 示例数据(替换为你的df_param)
df_param = {
    'x': [1, 2, 3, 4, 5],
    'y': [True, False, True, True, False]
}

plt.scatter(df_param['x'], df_param['y'])

2. 设置y轴刻度与标签

明确指定刻度的数值位置(对应布尔值的映射值),再替换为目标文本标签:

# 刻度位置对应False=0、True=1,标签设为["False", "True"]
plt.yticks([0, 1], ['False', 'True'])

3. 可选:调整y轴范围(优化显示)

避免标签偏移,可手动设置y轴范围:

plt.ylim(-0.2, 1.2)

完整代码示例

import matplotlib.pyplot as plt

df_param = {
    'x': [1, 2, 3, 4, 5],
    'y': [True, False, True, True, False]
}

plt.scatter(df_param['x'], df_param['y'])
plt.yticks([0, 1], ['False', 'True'])
plt.ylim(-0.2, 1.2)
plt.xlabel('X轴')
plt.ylabel('布尔值')
plt.title('布尔值散点图')
plt.show()

原理说明

通过[0,1]指定刻度的数值位置,匹配Matplotlib对布尔值的默认映射规则,再用字符串标签替换对应位置的显示文本,从根源避免类型转换冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:05:23