SruisPascal 2022-09-07 17:24 采纳率: 66.7%
浏览 26
已结题

Python导入matplotlib库

问题遇到的现象和发生背景
Python导入matplotlib库使用pyplot做柱状图时,提示TypeError
问题相关代码,请勿粘贴截图


import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
df = pd.read_excel('F:/heart/ex.xls', sheet_name=0, header=0)

x = df['专业名称']
y1 = df['最高分']
y2 = df['最低分']
y3 = df['平均分']
width = 0.25
#y轴标签
plt.ylabel('分数(分)')
#图标标题
plt.title('上海大学各专业高考分数', fontsize='18')
plt.bar(x, y1, width=width, color='r')
plt.bar(x+width, y2, width=width, color='b')
plt.bar(x+2*width, y3, width=width, color='g')
#设置每个柱子的文本标签
for a, b in zip(x, y1):
    plt.text(a, b+3, '%.1f'%b,  ha='center', va='bottom', fontsize=8)
for a, b in zip(x, y2):
    plt.text(a, b+3, '%.1f'%b,  ha='center', va='bottom', fontsize=8)
for a, b in zip(x, y3):
    plt.text(a, b+3, '%.1f'%b,  ha='center', va='bottom', fontsize=8)

plt.legend(['最高分', '最低分', '平均分'])
plt.show()


运行结果及报错内容
TypeError: can only concatenate str (not "float") to str

我的解答思路和尝试过的方法
将plt.bar()中x加的width去掉,但出现了柱子叠加。

我想要达到的结果
怎么才能把柱子分开

  • 写回答

2条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 10月4日
      • 已采纳回答 9月26日
      • 创建了问题 9月7日

      悬赏问题

      • ¥30 关于#网络安全#的问题:非对称加密验证
      • ¥20 关于线性代数里施密特正交化和QR分解的疑问
      • ¥15 matlab超类包含解析错误
      • ¥15 python拖拽文件问题
      • ¥15 执行import paddle代码出现错误如何解决?
      • ¥15 hisat2align exited with value 137
      • ¥15 寻找大学生合作开发软件(Delphi)
      • ¥30 AndroidBench&eMMC内存测试速度&Android
      • ¥15 W10 文件共享失败 怎么解决
      • ¥20 b站私信完整导出的方法