Python大作业进阶(三)

初级动态图

只是启用了 plt 的交互绘图功能,代码几乎没变,读者注意看细节吧
加分:2分?(不能再多了,就多了三行)

import matplotlib.pyplot as plt
import csv
plt.rcParams['font.sans-serif']=['SimHei'] # 将plt的汉语设置为黑体
# 开启交互式绘图
plt.ion()

f = open('Province_GDP.csv', 'r',encoding='utf-8')
csvreader = csv.reader(f)
final_list = list(csvreader)

# 将表格中的每个数据的格式改为float类型(之前的为str)
del(final_list[0])
final_ = []
for i in range(len(final_list)):
       fin = list(map(lambda x :float(x),final_list[i][1:]))
       fin.insert(0,final_list[i][0])
       final_.append(fin)

# 将数据以2018年数据排序
final_ = sorted(final_,key=lambda x:x[1],reverse=True)
#print(final_)

days = list(range(2010,2019))
sub_plots = [221,222,223,224]
for j in range(4):
       plt.suptitle('全国各省2010-2018年GDP变化折线图(x:年,y:亿元)\n根据各省2018年GDP排序')
       plt.subplot(sub_plots[j])
       if j != 3:
              for i in range(8*j,8+8*j):
                     shuju =(final_[i][1:])[::-1]
                     plt.plot(days, shuju,'.-',label = final_[i][0])
                     plt.legend(loc=2) #将图例放在左上角
                     plt.pause(1)
       else :
              for i in range(8*j,8+8*j-1):
                     shuju =(final_[i][1:])[::-1]
                     plt.plot(days, shuju,'.-',label = final_list[i][0])
                     plt.legend(loc=2)
                     plt.pause(1)
plt.show()

缺点:这样子画图只是一条线一条线画,无法展现出每个省的每年的具体变化,若想改进,应以时间为变化将每个省每年的变化绘制出来

全部评论

相关推荐

一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
赏个offer求你了:友塔HR还专门加我告诉我初筛不通过😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务