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

如何提取路径最后部分作为柱状图X轴类名(FastAI卫星图像分类)

解决柱状图X轴显示全路径的问题

我来帮你搞定这个X轴标签的问题!你遇到的核心问题是在Windows系统下用split('/')分割路径根本行不通——因为Windows的路径分隔符是反斜杠\,用斜杠分割的话,整个路径字符串不会被拆分,最后得到的还是全路径。

更稳妥的方式是直接利用Path对象自带的name属性,它能跨平台自动提取文件夹/文件的名称,完全不用手动处理路径分隔符。

修改后的完整代码

import matplotlib.pyplot as plt
from pathlib import Path

# 存放10个类别文件夹的路径
PATH = Path('C:/Users/oaamer/Desktop/sample/EuroSATallBands/train/')

# 构建类别-样本数字典(键为类别名称)
classes_num = {}
for category_folder in PATH.iterdir():
    # 先判断是否为文件夹,避免PATH下有文件干扰
    if category_folder.is_dir():
        # 直接获取文件夹名称作为类别名
        class_name = category_folder.name
        # 统计该类别下的图片数量
        classes_num[class_name] = len(list(category_folder.iterdir()))

print(classes_num)

# 绘制柱状图
plt.bar(classes_num.keys(), classes_num.values(), color='green')
# 旋转X轴标签45度,避免长名称重叠
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

关键改进点

  • 用Path.name替代字符串分割:不管是Windows的\还是Linux的/,Path对象都能正确识别并提取最后一级的文件夹名称,彻底解决路径分割的兼容性问题。
  • 增加文件夹判断:加上is_dir()检查,防止PATH目录下存在非文件夹文件时引发错误。
  • 优化标签可读性:添加plt.xticks(rotation=45)让X轴标签旋转,避免像HerbaceousVegetation这类长名称互相重叠。

这样修改后,你的柱状图X轴就会显示AnnualCrop、Forest这类清晰的类别名称,而不是冗长的全路径啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:36:43