[biblioteca matplotlib e pandas] Use a biblioteca matplotlib para desenhar gráficos de linhas, histogramas e gráficos de pizza com base nos dados de notas no arquivo CSV e processar e analisar as notas dos alunos

Matplotlib é uma biblioteca de terceiros que fornece plotagem de dados. Familiarize-se e domine o uso básico da biblioteca matplotlib, desenhe gráficos intuitivos para um conjunto de dados. Em seguida, use a biblioteca matplotlib para desenhar gráficos de linha, histogramas e gráficos de pizza com base nos dados do arquivo CSV e salve-os no disco do computador em formato de imagem.

A descrição do problema é a seguinte:

Abra o arquivo de pontuação do aluno test.csv (ou outros arquivos), extraia os dados, crie quatro subgráficos, desenhe um histograma e um gráfico de linha para o nome e os dados de pontuação do computador e conte as pontuações totais e médias de cada aluno, e desenhe o histograma de pontuação total e o gráfico de pizza de média de notas. Ao realizar cálculos de processamento de dados, é necessário usar a biblioteca pandas.A biblioteca pandas é muito conveniente para processar arquivos CSV.

O código do programa é o seguinte: 

#提取成绩文件数据绘制图形
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()

O resultado da execução do programa é o seguinte:

 

Se você tiver alguma dúvida, deixe uma mensagem para tirar dúvidas e o blogueiro responderá o mais breve possível. 

 Amigos que virem isso, não se esqueçam de dar um joinha para o blogueiro!

Siga os blogueiros para aprender conhecimentos de programação Python mais úteis!

Acho que você gosta

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