数据可视化1---直方图-折线图 素颜马尾好姑娘i 2022-06-08 13:17 198阅读 0赞 import matplotlib.pyplot as pt import numpy as np import matplotlib as mpl def ptText(ind,score): try: for i in range(len(ind)): x = ind[i] y = score[i] pt.text(x,y,str(y),va='center',ha='center',color='red',fontsize=9) except: print("Error") def ClearLine(): try: axs1 = pt.gca() axs1.spines['left'].set_color('red') axs1.spines['bottom'].set_color('red') axs1.spines['right'].set_color('none') axs1.spines['top'].set_color('none') except: print("Error") def getData_score_num(movie,num_type,count): fpath ="D:\数据\movie.txt" with open(fpath,'r',encoding='gbk') as f: for i in range(count): line = f.readline() mtype = line.split(',')[1] mscore = float(line.split(',')[4]) t = mtype.split() for j in range(0,len(t),2): if ((t[j] in movie.keys())): movie[t[j]] += mscore num_type[t[j]] += 1 else: movie[t[j]] = mscore num_type[t[j]] = 1 def getData_mcou_cscore_cnum(movie,num_type,mtype,mscore,tnum): for k,v in movie.items(): v = v/num_type[k] a = "%.1f" %v tnum.append(num_type[k]) mtype.append(k) mscore.append(a) def drawFigure(mtype,mscore,tnum): mpl.rcParams['font.family']= 'simHei' mpl.rcParams['font.size']= 14 fig = pt.figure(figsize=(20,15)) ax1 = pt.subplot(211) pt.title('各个制片地区的平均豆瓣评分\n和此地区制作的电影个数',color='purple') pt.xlabel('制片地区',fontsize='12',color='cyan') pt.ylabel('制作的电影的\n平均豆瓣评分',fontsize='12',rotation=30,color='cyan') ind = np.arange(len(mtype)) ptText(ind,mscore) pt.bar(ind,mscore) pt.xticks(ind,mtype,fontsize='8',rotation=50) ClearLine() ax2 = pt.subplot(212) pt.xlabel('制片地区',fontsize='12',color='cyan') pt.ylabel('制作的电影个数',fontsize='12',rotation=30,color='cyan') ind = np.arange(len(mtype)) ptText(ind,tnum) pt.plot(ind,tnum,label='制作地区-电影个数',color='orange') pt.xticks(ind,mtype,fontsize='8',rotation=50) ClearLine() pt.savefig("D:\数据\country.png",dpi=400) pt.legend() pt.show() def main(): movie = dict() num_type = dict() count = 1329 mtype = list() mscore = list() tnum = list() getData_score_num(movie,num_type,count) getData_mcou_cscore_cnum(movie,num_type,mtype,mscore,tnum) drawFigure(mtype,mscore,tnum) main() ![Center][] [Center]: /images/20220608/0e8de27e451e487db53a1a20866af3cd.png
还没有评论,来说两句吧...