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

如何在Matplotlib中用定性值(文字)替换定量值作为Y轴标签

用Matplotlib绘制定量X轴对应定性Y轴的图表

原Stack Overflow示例核心逻辑解释

原示例的核心思路是先把定性Y值转换成数值,绘图后再将Y轴刻度替换为文字标签,本质是绕开Matplotlib仅支持数值型坐标轴的限制,步骤拆解:

  • 给每个定性类别分配对应数字(比如low→0、medium→1、high→2)
  • 用转换后的数值完成绘图
  • 最后把Y轴的数字刻度替换回定性文字,让图表显示直观的类别名称

针对你需求的易懂实现案例

直接匹配你X取值1-10、Y对应low/medium/high的需求,写极简可运行的代码:

步骤1:导入库并准备数据

import matplotlib.pyplot as plt

# 准备X定量值和对应Y定性值
x_values = list(range(1, 11))  # X从1到10
y_labels = ['low']*3 + ['medium']*3 + ['high']*4  # 对应X的Y定性标签

# 将定性标签映射为数值(供Matplotlib绘图使用)
label_mapping = {'low': 0, 'medium': 1, 'high': 2}
y_numeric = [label_mapping[label] for label in y_labels]

步骤2:绘制图表并替换Y轴刻度

plt.figure(figsize=(8, 5))
# 用散点图展示,换成plt.plot()可绘制折线图
plt.scatter(x_values, y_numeric, color='darkorange', s=60)

# 关键操作:把Y轴数字刻度替换为定性标签
plt.yticks(ticks=[0, 1, 2], labels=['low', 'medium', 'high'])

# 添加基础标注
plt.xlabel('X(定量值)')
plt.ylabel('Y(定性类别)')
plt.title('X定量值与Y定性类别对应图')

# 可选:添加Y轴网格线,更清晰区分类别
plt.grid(axis='y', linestyle='--', alpha=0.6)

plt.show()

代码说明

  • 把定性标签转成数值是必要操作,因为Matplotlib原生只支持数值坐标轴
  • plt.yticks()是实现定性Y轴的核心:ticks指定要替换的数值位置,labels对应替换成的文字标签
  • 如果需要折线图,只需把plt.scatter()替换为plt.plot(x_values, y_numeric, marker='s', linestyle='-', color='darkorange')即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 23:29:59