import csv
import matplotlib.pyplot as plt
import numpy as np
filmCountry =[]
score = dict()
boss = dict()
film =dict()
film2 = []
with open("douban_top250.csv" , newline="", encoding="utf-8") as c:
rows =csv.reader(c)
for row in rows:
if len(row) != 0:
rowss = []
rowss.append(row)
for r in rowss:
if r[3] != None :
filmCountry.append(rowss)
# for i in filmCountry:
# print(i[0])
for i in range(1, 11):
for r in filmCountry[i]:
if r[8] != None and r[1] != None:
score[r[1]] = r[8]
for i in filmCountry:
# print(i[0])
if i[0][3] in list(film.keys()):
film[i[0][3]] = film[i[0][3]] + 1
else :
film[i[0][3]] = 1
count = 0
for x, y in film.items():
if y >= 5 and count <4:
count = count +1
film2.append([x,y])
for i in range(1, 11):
for r in filmCountry[i]:
if r[9] != None and r[1] != None:
boss[r[1]] = r[9]
print(score)
print(film2)
print(boss)
score2 = list(score.keys())
score3 = list(score.values())
boss2 = list(boss.keys())
boss3 = list(boss.values())
# 中文标签正常显示
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
plt.figure(figsize=(10, 6))
plt.bar(["Hayao Miyazaki","Christopher Nolan","Steven Spielberg","Ang Lee"],[film2[0][1],film2[1][1],film2[2][1],film2[3][1]])
plt.figure(figsize=(10, 6))
plt.barh(score2,score3)
plt.figure(figsize=(10, 6))
plt.plot(score2, score3, linestyle='-', color='black') # 设置线条颜色为黑色
plt.show()