import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns df = pd.read_excel('订单_new.xlsx', header=0) df2 = df.pivot_table(values='数量', index='商品名称', columns='周次', aggfunc='sum', fill_value=0) max_val = df2.max() print(df2) print(max_val) x1 = [1, 2, 3, 4] x2 = [a - 0.1 for a in x1] x3 = [a - 0.2 for a in x1] x4 = [a + 0.1 for a in x1] x5 = [a + 0.2 for a in x1] b = [df2.loc['卫衣', :], df2.loc['休闲鞋', :], df2.loc['T恤', :], df2.loc['围巾', :], df2.loc['运动服', :]] plt.bar(x=x1, height=b[0], width=0.1) plt.bar(x=x2, height=b[1], width=0.1) plt.bar(x=x3, height=b[2], width=0.1) plt.bar(x=x4, height=b[3], width=0.1) plt.bar(x=x5, height=b[4], width=0.1) plt.legend(['卫衣','休闲鞋','T恤','围巾','运动服']) plt.xticks([1,2,3,4]) for i,a in enumerate(max_val): plt.text(i+1,530,'最高'+a) plt.xticks([1,2,3,4],labels=[5,6,7,8]) plt.rcParams['font.sans-serif'] = ['KaiTi'] plt.rcParams['axes.unicode_minus'] = False plt.title('每周各种商品的订购总数量比较图') plt.xlabel('周次') plt.show()哪里错了
时间: 2023-06-26 08:06:37 浏览: 113
代码中存在以下错误:
1. 导入库的语句需要分行写,即每个库的导入应该独立成一行。
2. `print(df2)` 和 `print(max_val)` 语句缺少换行符。
3. `for i,a in enumerate(max_val): plt.text(i+1,530,'最高'+a)` 中,`'最高'+a` 应该改为 `'最高'+str(a)`。
4. 为了防止中文乱码,需要将 `plt.rcParams['font.sans-serif'] = ['KaiTi']` 和 `plt.rcParams['axes.unicode_minus'] = False` 放在文件最开始的地方。
修改后的代码如下:
```
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False
df = pd.read_excel('订单_new.xlsx', header=0)
df2 = df.pivot_table(values='数量', index='商品名称', columns='周次', aggfunc='sum', fill_value=0)
max_val = df2.max()
print(df2)
print(max_val)
x1 = [1, 2, 3, 4]
x2 = [a - 0.1 for a in x1]
x3 = [a - 0.2 for a in x1]
x4 = [a + 0.1 for a in x1]
x5 = [a + 0.2 for a in x1]
b = [df2.loc['卫衣', :], df2.loc['休闲鞋', :], df2.loc['T恤', :], df2.loc['围巾', :], df2.loc['运动服', :]]
plt.bar(x=x1, height=b[0], width=0.1)
plt.bar(x=x2, height=b[1], width=0.1)
plt.bar(x=x3, height=b[2], width=0.1)
plt.bar(x=x4, height=b[3], width=0.1)
plt.bar(x=x5, height=b[4], width=0.1)
plt.legend(['卫衣','休闲鞋','T恤','围巾','运动服'])
plt.xticks([1,2,3,4],labels=[5,6,7,8])
for i,a in enumerate(max_val):
plt.text(i+1,530,'最高'+str(a))
plt.title('每周各种商品的订购总数量比较图')
plt.xlabel('周次')
plt.show()
```
阅读全文