17 字
1 分钟
实验代码
2-3 数据可视化实验
第3关
import matplotlibmatplotlib.use('Agg')import matplotlib.pyplot as pltmatplotlib.rcParams['font.family']='SimHei'matplotlib.rcParams['font.sans-serif'] = ['SimHei']matplotlib.rcParams['axes.unicode_minus'] = False # 解决负号显示问题import osimport numpy as np
########### Begin ############# 1. 定义y轴数据列表(根据表格填入8位老师的平均分)y = [84.12, 81.83, 79.89, 78.19, 76.83, 75.09, 74.58, 73.71]
# 2. 创建新的绘图画布(推荐尺寸8x6,适配条形图)plt.figure()
# 3. 生成x轴的位置索引(从1开始,长度与y一致)sj = np.arange(1, len(y) + 1)
# 4. 绘制条形图:宽度0.5、颜色蓝色plt.bar(sj, y, width=0.5, color='blue')
# 5. 定义x轴标签文本列表(8位老师姓名,严格对应表格顺序)x_labels = ["何老师", "张老师", "蒋老师", "黄老师", "王老师", "李老师", "唐老师", "刘老师"]
# 6. 替换x轴刻度为老师姓名plt.xticks(sj, x_labels)
# 7. 设置图表标题为“平均成绩”plt.title("平均成绩")
# 8. 自动创建image4文件夹(防止路径不存在报错)os.makedirs("image4", exist_ok=True)
# 9. 保存图片到image4/tzt.jpgplt.savefig("image4/tzt.jpg")plt.close()########### End ############第4关
import matplotlibmatplotlib.use('Agg')import matplotlib.pyplot as pltmatplotlib.rcParams['font.family']='SimHei'matplotlib.rcParams['font.sans-serif'] = ['SimHei']matplotlib.rcParams['font.size']=8plt.figure(figsize=(10,10))import os
########### Begin ############# 导入pandas库import pandas as pd
# 读取数据,指定年份为字符串df = pd.read_csv("test/gdp.csv", dtype={"年份": str})
# 按省份分组求和GDPsj = df.groupby("省份")["GDP"].sum()
# 绘制饼图:仅传x、labels、autopct,其余参数全部使用默认值# 严格遵循你提供的pie函数格式plt.pie(sj, labels=sj.index, autopct='%.1f%%')
# 设置饼图标题plt.title("全国各地GDP饼图")
# 保存图片os.makedirs("image7", exist_ok=True)plt.savefig("image7/gdp7.jpg")plt.close()########### End ############第5关
import matplotlibmatplotlib.use('Agg')import matplotlib.pyplot as pltmatplotlib.rcParams['font.family']='SimHei'matplotlib.rcParams['font.sans-serif'] = ['SimHei']matplotlib.rcParams['font.size']='8'plt.figure(figsize=(10,10))########### Begin ############# 导入pandas库,用于实现数据读取和数据筛选处理import pandas as pd# 读取test目录下的gdp.csv文件,指定"年份"列的数据类型为字符串data=pd.read_csv("test/gdp.csv",dtype={"年份":str})# 定义子图索引变量i,用于指定后续子图的摆放位置,初始值为1i=1# 循环遍历2010到2013年(range左闭右开,2014不包含,即遍历2010、2011、2012、2013)for y in range(2010,2014): # 筛选出数据中"年份"列等于当前循环年份的行,仅保留"省份"和"GDP"两列数据 sj=data.loc[data["年份"]==str(y),["省份","GDP"]] # 创建子图,设置画布为2行2列的布局,当前绘制第i个子图 plt.subplot(2,2,i) # 绘制当前年份的饼图,饼图数据为该年份各省份的GDP,标签为对应省份名称 plt.pie(sj["GDP"],labels=sj["省份"]) # 设置当前子图的标题,显示为“当前年份+年”的格式,明确子图对应的年份 plt.title(str(y)+"年") # 子图索引自增1,为下一次循环绘制下一个子图做准备 i=i+1# 将绘制完成的2行2列子图(4个年份的GDP饼图)保存到image8目录下,文件名为gdp8.jpgplt.savefig("image8/gdp8.jpg")########### End ############部分信息可能已经过时









