猫史档案馆


【Python作品分享】【去太空,趣编程】中国航天史V2.0【作品秀】

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


【作品展示】

center_image

 

【作品介绍】

使用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


回复

上一页1 页 / 共 1下一页
FZH_FZH_

emotion_goodemotion_goodemotion_good大佬厉害!

点赞0


评论