[Matplotlib- und Pandas-Bibliothek] Verwenden Sie die Matplotlib-Bibliothek, um Liniendiagramme, Histogramme und Kreisdiagramme basierend auf den Notendaten in der CSV-Datei zu zeichnen und die Noten der Schüler zu verarbeiten und zu analysieren

Matplotlib ist eine Bibliothek eines Drittanbieters, die das Plotten von Daten ermöglicht. Machen Sie sich mit der grundlegenden Verwendung der Matplotlib-Bibliothek vertraut und beherrschen Sie diese. Zeichnen Sie intuitive Grafiken für einen Datensatz. Verwenden Sie als Nächstes die Matplotlib-Bibliothek, um Liniendiagramme, Histogramme und Kreisdiagramme basierend auf den Daten in der CSV-Datei zu zeichnen und diese im Bildformat auf der Computerfestplatte zu speichern.

Die Problembeschreibung lautet wie folgt:

Öffnen Sie die Schüler-Score-Datei test.csv (oder andere Dateien), extrahieren Sie die Daten, erstellen Sie vier Unterdiagramme, zeichnen Sie ein Histogramm und ein Liniendiagramm für den Namen und die Computer-Score-Daten und zählen Sie dann die Gesamtpunktzahl und Durchschnittspunktzahl jedes Schülers. und zeichnen Sie das Gesamtpunktzahl-Histogramm und das Kreisdiagramm mit dem Notendurchschnitt. Bei der Durchführung von Datenverarbeitungsberechnungen muss die Pandas-Bibliothek verwendet werden. Die Pandas-Bibliothek eignet sich sehr gut für die Verarbeitung von CSV-Dateien.

Der Programmcode lautet wie folgt: 

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

Das Ergebnis der Programmausführung ist wie folgt:

 

Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht, um Fragen zu stellen. Der Blogger wird so schnell wie möglich antworten. 

 Freunde, die das sehen, vergessen Sie nicht, dem Blogger einen Daumen nach oben zu geben!

Folgen Sie Bloggern, um weitere nützliche Python-Programmierkenntnisse zu erfahren!

おすすめ

転載: blog.csdn.net/qq_59049513/article/details/122557372