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()

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

python大作业 一、Turtle创意大PK 自拟题目,完成一个利用Python程序的创意绘图,采用turtle库绘图为主,不少于50行代码,可选采用其他库。 (滑稽绘制) 二、程序练习 2.1 问题描述(10分) 人们常常提到"一万小时定律",就是不管你做什么事情,只要坚持一万小时,应该都可以成为该领域的专家。那么,10000小时是多少年多少天呢? 2.2 问题描述(10分)0380031003800341590145037657 编写计算从n到m和的函数‬,函数名为sum(n,m)‬,函数返回值为n到m所有数据的和‬,使用该函数计算输入数据x,y之间所有数据的和。 2.3 问题描述(15分) 编写函数judgeTri(a,b,c),判断以参数a,b,c的值为边长能否构成角形并判断角形的形状;若是锐角角形,返回R;若是直角角形,返回Z;若是钝角角形,返回D;若边长不能构成角形,返回ERROR。 2.4 问题描述(15分) 用户输入一个字符串,分别统计其中小写字母、大写字母、数字、空格和其他字符的个数,并在一行内输出小写字母、大写字母、数字、空格和其他字符的个数。 2.5 问题描述(20分) 程序的功能: (1) 使用随机库功能,生成一个包含10个不重复且小于200的正整数列表ls1,输出ls1。‬ (2) 使用列表排序方法,对ls1按奇数在前偶数在后,并且奇数之间的相对顺序不变,偶数之间的相对顺序也不变进行排序,再输出ls1。‬ (3) 使用列表排序方法,对ls1按元素字符长度降序进行排序,输出ls1。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arik (IoT)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值