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

如何在Matplotlib中为非数值数据的双轴设置指定排序

Matplotlib非数值散点图自定义轴类别顺序的解决方案

要将非数值散点图的X轴改为a-b-c、Y轴改为x-y-z排序,可通过以下Matplotlib原生方法实现:

实现代码

import matplotlib.pyplot as plt

# 原始数据
categories_x = ["c", "a", "b", "c", "b"]
categories_y = ["y", "z", "y", "x", "z"]

# 定义目标轴类别顺序
x_order = ["a", "b", "c"]
y_order = ["x", "y", "z"]

# 将类别映射为目标顺序对应的索引
x_pos = [x_order.index(c) for c in categories_x]
y_pos = [y_order.index(c) for c in categories_y]

# 绘制散点并设置刻度
plt.scatter(x_pos, y_pos)
plt.xticks(range(len(x_order)), x_order)
plt.yticks(range(len(y_order)), y_order)

plt.show()

核心逻辑

  • 先把每个类别转换为它在目标顺序中的索引值,让散点位置严格对应目标顺序的位置;
  • 再通过xticks和yticks将数值刻度替换为对应的类别名称,最终呈现自定义排序的非数值轴。

该方案完全基于Matplotlib实现,无需依赖其他库,同时解决了双轴自定义排序的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:27:42