[biblioteca matplotlib y pandas] Use la biblioteca matplotlib para dibujar gráficos de líneas, histogramas y gráficos circulares basados en los datos de calificación en el archivo CSV, y procese y analice las calificaciones de los estudiantes

Matplotlib es una biblioteca de terceros que proporciona trazado de datos. Familiarícese y domine el uso básico de la biblioteca matplotlib, dibuje gráficos intuitivos para un conjunto de datos. A continuación, utilice la biblioteca matplotlib para dibujar gráficos de líneas, histogramas y gráficos circulares basados ​​en los datos del archivo CSV y guárdelos en el disco de la computadora en formato de imagen.

La descripción del problema es la siguiente:

Abra el archivo de puntaje del estudiante test.csv (u otros archivos), extraiga los datos, cree cuatro subgráficos, dibuje un histograma y un gráfico de líneas para el nombre y los datos de puntaje de la computadora, y luego cuente los puntajes totales y los puntajes promedio de cada estudiante. y dibuje el histograma de puntaje total y el gráfico circular de promedio de calificaciones. Al realizar cálculos de procesamiento de datos, es necesario utilizar la biblioteca pandas.La biblioteca pandas es muy conveniente para procesar archivos CSV.

El código del programa es el siguiente: 

#提取成绩文件数据绘制图形
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif']=['SimHei']
fr =pd.read_csv("test.csv",header=0,encoding='gbk')
xm=fr['姓名']
ji=fr['计算机']
zc=fr['总成绩']=fr['计算机']+fr['英语']+fr['数学']
fr['平均成绩']=fr['总成绩']/(fr.shape[1]-2)
fr['平均成绩'] = fr['平均成绩'].apply(lambda x: format(x, '.2f'))
pj=fr['平均成绩']
fr.to_csv('testf1.csv',index=None)
plt.figure()
plt.subplots_adjust(wspace=0.4,hspace=0.5)#调整子图之间的位置,防止子图之间覆盖
plt.subplot(221)
plt.bar(xm,ji)
for a,b,i in zip(xm,ji,range(len(xm))):
    plt.text(a,b+0.01,ji[i],ha='center',fontsize=10)
plt.ylabel('计算机成绩')
plt.xlabel('姓名')
plt.title('计算机成绩柱状图')
plt.subplot(222)
plt.plot(xm,ji)
plt.ylabel('计算机成绩')
plt.xlabel('姓名')
plt.title('计算机成绩折线图')
plt.subplot(223)
plt.bar(xm,zc,color='purple')
for a,b,i in zip(xm,zc,range(len(xm))):
    plt.text(a,b+0.01,zc[i],ha='center',fontsize=10)
plt.ylabel('总成绩')
plt.xlabel('姓名')
plt.title('总成绩柱状图')
plt.subplot(224)
plt.pie(pj,labels=xm,autopct='%2.2f%%')#显示的百分比保留两位小数
plt.title('平均成绩饼状图')
plt.savefig('成绩分析.png')
plt.show()

El resultado de la ejecución del programa es el siguiente:

 

Si tiene alguna pregunta, deje un mensaje para hacer preguntas y el blogger le responderá lo antes posible. 

 ¡Amigos que vean esto, no se olviden de darle un pulgar hacia arriba al blogger!

¡Sigue a los blogueros para aprender más conocimientos útiles sobre programación en Python!

Supongo que te gusta

Origin blog.csdn.net/qq_59049513/article/details/122557372
Recomendado
Clasificación