小編給大家分享一下Python讀取xlsx數(shù)據(jù)生成圖標(biāo)的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、咸寧網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為咸寧等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。運(yùn)行結(jié)果:
程序代碼如下:
#將excel中的數(shù)據(jù)進(jìn)行讀取分析 import openpyxl import numpy as np import math import matplotlib.pyplot as pit wk=openpyxl.load_workbook('信息11.xlsx') sheet=wk.active rows=sheet.max_row cols=sheet.max_column lst1=[] lst2=[] for i in range (1,rows+1): size1=sheet.cell(i,1).value lst1.append(size1) size2 = sheet.cell(i, 2).value lst2.append(size2) num=0 dic_size={} for item in lst1: dic_size[lst1[num]]=lst2[num] num+=1 #弄成百分比的形式 lst_total=[] for item in dic_size: lst_total.append([item,dic_size[item]]) labels=[item[0] for item in lst_total] #使用列表生成式,得到餅圖的標(biāo)簽 fraces=[item[1] for item in lst_total] #餅圖中的數(shù)據(jù)源 pit.rcParams['font.family']=['SimHei'] #單獨(dú)的表格亂碼的處理方式 pit.scatter(labels,fraces) pit.plot(labels,fraces,color='green') pit.bar(labels,fraces,width=5,color='red') z1=np.polyfit(labels,fraces,2) p1=np.poly1d(z1) x = np.linspace(0, 500, 50) y=-0.00024*(x**2)+0.1013*(x)+10.23 pit.plot(x,y,color='purple') #pit.savefig('圖.jpg') yre=[] for item in labels: y=-0.00024*(item**2)+0.1013*(item)+10.23 yre.append(round(y,6)) print(fraces) print(yre) result=[] a=0 mse=0 mae=0 for i in range(0,10): a+=round(fraces[i]-yre[i],6) mae+=round(math.fabs(fraces[i]-yre[i]),6) for i in range(0,10): result.append(round(fraces[i] - yre[i]-round(a/10,6), 6)) mse += round((fraces[i] - yre[i]-round(a/10,6)) * (fraces[i] - yre[i]-round(a/10,6)), 6) print(result) print('均值',round(a/10,6)) print('均方誤差',round(mse/10,6)) rmse=math.sqrt(round(mse/10,6)) print('均方根誤差',round(rmse,6)) print('平均絕對誤差',round(mae/10,6)) print('R平方的數(shù)值',1-((round(a/10,6))*round(a/10,6))/round(mse/10,6)) print(p1) #pit.show()