Python使用matplotlib绘制barplot报错ValueError无法转字符串为float怎么办
报错原因
核心是本地matplotlib版本低于2.2.0:plt.bar()方法在2.2.0版本才新增了字符串类型分类参数的支持,更早版本只能传入数值类型的x轴坐标,因此解析'A'这类字符串时会触发转float失败的报错。你参考的教程运行环境是高版本matplotlib,所以示例代码可以直接运行。
解决方案
- 方案一:升级matplotlib版本(最简便)
执行升级命令:pip install --upgrade matplotlib
升级完成后原有代码无需修改即可正常运行。 - 方案二:兼容旧版本的代码修改
不升级依赖的情况下,先创建数值索引作为x轴坐标,再手动替换刻度标签,修改后代码如下:
import pandas as pd import numpy as np import matplotlib.pyplot as plt x=['A','B','C','D','E','F','G','H','I','J'] y=[47, 23, 27, 0, 82, 7, 46, 92, 36, 76] # 生成与分类对应的数值x坐标 x_index = range(len(x)) plt.bar(x_index, y) # 替换x轴刻度为分类标签 plt.xticks(x_index, x) plt.xlabel('Categories') plt.ylabel("Values") plt.title('Categories Bar Plot') plt.show()
内容的提问来源于stack exchange,提问作者palatinepython
相关产品推荐
相关产品推荐

