用户:
洛羽夕查看:0 回复:1 评论:0 创建时间:2021-05-07T14:43:59
【作品展示】

【作品介绍】
使用pyecharts制作了一个可以动的表格。展示我国几十年来的航天火箭发展历史。
使用说明:运行程序,会生成一个html文件,打开会自动刷新。
(数据txt文件在我电脑上,不知道怎么传上来。)
PS:113行代码,需要把refresh里面的html代码取消注释。要不然这些代码会影响社区帖子的显示,希望官方可以早点修复这个bug吧。
【作品源代码】
from pyecharts import options as opts
from pyecharts.charts import Bar
import time
import random
#表格颜色
colors = {
'长征三号乙': '#b71c1c',
'长征二号丙': '#18FFFF',
'长征二号丁': '#7C4DFF',
'长征喵乙': '#004D40',
'长征喵丙': '#76FF03',
'长征三号甲': '#FF4081',
'长征三号丙': '#448AFF',
'长征三号': '#0060喵',
'长征二号F': '#F57F17',
'长征十一号': '#311B92',
'风暴一号': '#FFFF00',
'快舟一号甲': '#FF6F00',
'长征二号E': '#1A237E',
'长征二号甲': '#1B5E20',
'开拓者一号': '#E65100',
'长征五号': '#BF360C',
'长征六号': '#3E2723',
'快舟一号': '#33691E',
'长征喵甲': '#0D47A1',
'长征一号': '#607D8B',
'长征七号': '#880E4F',
'双曲线一号': '#01579B',
'朱雀一号': '#827717',
'开拓二号': '#4A148C',
}
#让每个柱子显示同一种颜色
def changeData(name, value):
#去除最后的空项
value[index].pop(0)
name[index].pop(-1)
value[index].pop(-1)
nameL = name[index]
valueL = value[index]
#表格倒过来排序,让发射数量多的在上面
nameL.reverse()
#把颜色加进去
valueL.reverse()
for i in range(len(nameL)):
valueL[i] = {'value': valueL[i],
'itemStyle': {'color': colors[nameL[i]]}}
return nameL, valueL
#制作表格的函数
def bg():
c = (
Bar(init_opts=opts.InitOpts(
width='1200px',
height='800px',
page_title="中国航天运载火箭")
)
.add_xaxis(nameL)
.add_yaxis("中国航天运载火箭", valueL)
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(position="right"))
.set_global_opts(title_opts=opts.TitleOpts(title=titleName))
.render("中国航天运载火箭发展.html")
)
if __name__ == "__main__":
#控制重复执行的次数:年代的数量
index = 0
#txt数据文件存放在我电脑上,按照#年份 数据这种格式来存放的
try:
with open('运载火箭.txt', 'r', encoding='utf-8') as f1:
name = f1.read()
with open("数量.txt", 'r', encoding='utf-8') as f2:
value = f2.read()
#去掉开始的空项
name = name.split('#')
name.pop(0)
value = value.split("#")
value.pop(0)
except Exception as e:
print('txt文件在我电脑上,不知道怎么上传。')
print(e)
while True:
#获取数据
try:
if len(name) > index:
name[index] = name[index].split('\n')
value[index] = value[index].split('\n')
#表格数据的标题
titleName = name[index].pop(0)+'年'
nameL, valueL = changeData(name, value)
# print(nameL)
# print(valueL)
else:
#最后一次画图
bg()
break
except Exception as e:
print('文件没有读取到。')
print(e)
titleName = '1977'
nameL = ['风暴一号', '长征二号甲', '长征一号']
valueL = [6, 3, 2]
break
#生成表格
bg()
# 插入定时刷新的代码
with open('中国航天运载火箭发展.html', 'a+') as f1:
refesh = ' '
f1.write(refesh)
index += 1
time.sleep(1)
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn