summersnow_ay 2022-02-16 17:37 采纳率: 100%
浏览 907
已结题

在使用Matplotlib画图的时候显示raise KeyError(key) from err提示,是否由于是中文字体原因?

  1. 现有12月和1月数据,想通过Matplotlib画图对比数据
  2. 错误提示: y_col_1 = df['12月'].to_numpy() raise KeyError(key) from err KeyError: '12月'

img

img

  1. 代码如下:
######导入Pandas读取EXCEL文件
import matplotlib
import pandas as pd
######导入可视化模块
import matplotlib.pyplot as plt

print(matplotlib.matplotlib_fname())


df = pd.read_excel("D:\工作\Anaconda3\Testresults1.xlsx", sheet_name="X渠道")

x_row = df.index.to_numpy()
y_col_1 = df['12月'].to_numpy()
y_col_2 = df['1月'].to_numpy()

fig, ax = plt.subplots()

xticks = list(range(12)) #自定义刻度
ax.set_xticks(xticks)

plt.title("X渠道", fontsize=12) #标题
plt.ylabel("月份") #纵坐标名字
plt.x1label("总数/单") #横坐标名字
plt.x2label("营收/元") #横坐标名字
plt.x3label("实际营收/元") #横坐标名字
plt.x4label("毛利/元") #横坐标名字
plt.grid(True,linestyle=':')

l1, = plt.plot(x_row, y_col_1)# 默认折线、实线
l2, = plt.plot(x_row, y_col_2, color="blue", linewidth=1.5, linestyle="-") # 蓝色,1.5宽,线段

ls = [l1,l2]
labels = ['12月','1月']
plt.legend(handles=ls,labels=labels,loc='best')
plt.show()

  • 写回答

1条回答 默认 最新

  • user-from-future 2022-02-16 18:00
    关注

    y_col_1 = df['12月'].to_numpy() 这边的 df['XXX'] 中的XXX只能是列的字段名,不能读取行,但可以使用如下代码来按条件读行:

    y_col_1 = df.loc[df['月份'] == '12月'].to_numpy()[0]
    y_col_2 = df.loc[df['月份'] == '1月'].to_numpy()[0]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月23日
  • 已采纳回答 2月17日
  • 创建了问题 2月16日

悬赏问题

  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码