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()
数据可视化1---直方图-折线图
最新推荐文章于 2023-06-18 08:26:57 发布