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

在使用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 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout