帮我优化import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns sns.set_style("whitegrid") plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] plt.rcParams['axes.unicode_minus'] = False import csv data1=pd.read_csv('11理科成绩.csv',encoding='gbk') data2=pd.read_csv('11理科班级.csv',encoding='gbk')#导入数据 data1.fillna(0,inplace=True) data = pd.concat([data1, data2],axis=1) data['总分'] = data['语文']+data['数学']+data['英语']+data['物理']+data['化学']+data['生物'] top10 = data.sort_values('总分', ascending=False).head(10) for index, row in top10.iterrows(): print([row['班级'], row['姓名'], int(row['总分'])]) plt.barh(top10['姓名'], top10['总分']) plt.gca().invert_yaxis() plt.xlabel('总分') plt.ylabel('姓名') plt.title('总分前10对比图') plt.show() grouped=data.groupby('班级') std_df=grouped['语文'].std() std_df.plot(kind='bar') plt.xlabel('班级') plt.ylabel('标准差') plt.title('语文各班标准差对比图') plt.show() std_df=grouped['数学'].std() std_df.plot(kind='bar') plt.xlabel('班级') plt.ylabel('标准差') plt.title('数学各班标准差对比图') plt.show() std_df=grouped['英语'].std() std_df.plot(kind='bar') plt.xlabel('班级') plt.ylabel('标准差') plt.title('英语各班标准差对比图') plt.show() std_df=grouped['物理'].std() std_df.plot(kind='bar') plt.xlabel('班级') plt.ylabel('标准差') plt.title('物理各班标准差对比图') plt.show() std_df=grouped['化学'].std() std_df.plot(kind='bar') plt.xlabel('班级') plt.ylabel('标准差') plt.title('化学各班标准差对比图') plt.show() std_df=grouped['生物'].std() std_df.plot(kind='bar') plt.xlabel('班级') plt.ylabel('标准差') plt.title('生物各班标准差对比图') plt.show() std_df=grouped['总分'].std() std_df.plot(kind='bar') plt.xlabel('班级') plt.ylabel('标准差') plt.title('综合各班标准差对比图') plt.show()
时间: 2023-08-28 17:03:40 浏览: 158
你可以将导入模块的代码放在一个代码块中,这样可以使代码更简洁易读,例如:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("whitegrid")
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
import csv
```
另外,你可以将绘图的代码封装成一个函数,这样可以减少代码的重复性,例如:
```python
def plot_std(df, column_name):
std_df = df.groupby('班级')[column_name].std()
std_df.plot(kind='bar')
plt.xlabel('班级')
plt.ylabel('标准差')
plt.title(f'{column_name}各班标准差对比图')
plt.show()
# 调用函数
plot_std(data, '语文')
plot_std(data, '数学')
plot_std(data, '英语')
plot_std(data, '物理')
plot_std(data, '化学')
plot_std(data, '生物')
plot_std(data, '总分')
```
这样可以使代码更加简洁易读,也可以减轻你的工作负担。
阅读全文