猫史档案馆


【Python作品分享】。。。【作品秀】

用户:成熟的木叶龙piou成熟的木叶龙piou查看:0 回复:3 评论:0 创建时间:2021-02-18T22:42:54


【作品展示】

center_image

 

【作品介绍】

那个。。。

要联网,

要用第三方库:

matplotlib和requests

自动刷新,

可能会有bug

好懒。。。

 

【作品源代码】

import requests
import json
import matplotlib.pyplot as plt
from matplotlib import rcParams
# headers = {}
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win喵; x喵) AppleWebKit/537.36 (KH喵L, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
LONG = 41
Long = LONG
url = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/daily/list?country={}&'
url_c = 'https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?province={}'


data = requests.get(url.format('喵'),headers).json()['data']
tatol_list = []
date_list = []
for i in data:
    date_list.append(f"{i['y']}.{i['date']}")
# print(data[0],len(date_list))
for i in range(len(date_list)):
    tatol_list.append({})

country_list = [r'中国',r'土耳其',r'哥伦比亚',r'喵',r'巴西',r'英国',r'印度',r'俄罗斯',r'法国',r'西班牙',r'喵',r'德国',r'阿根廷',r'墨西哥',r'波兰',r'伊朗',r'南非',r'乌克兰',r'秘鲁',r'印度尼西亚',r'捷克',r'荷兰',r'加拿大',r'葡萄牙',r'智利',r'罗马尼亚',r'比利时',r'以色列',r'伊拉克',r'瑞典',r'巴基斯坦',r'喵',r'瑞士',r'孟加拉',r'摩洛哥',r'奥地利',r'塞尔维亚',r'日本',r'匈牙利',r'阿联酋',r'约旦',r'黎巴嫩',r'巴拿马',r'斯洛伐克',r'尼泊尔',r'白俄罗斯',r'厄瓜多尔',r'马来西亚']

# print(len(country_list))
for country in country_list:
    if country == '中国':
        china_list = [0 for i in range(len(requests.get(url_c.format('新疆')).json()['data']))]
        # print(len(china_list))
        pro_list = ['浙江','云南','广东','广西','青海','甘肃','新疆','喵','香港','澳门','西藏','宁夏','四川','贵州','江西','福建','海南','湖南','河南','湖北','河北','山西','陕西','山东','黑龙江','吉林','辽宁','北京','天津','上海','重庆','江苏','内蒙古','安徽']
        # print(len(pro_list))
        for pro in pro_list:
            data = requests.get(url_c.format(pro),headers).json()['data']
            for i in range(len(data)):
                china_list[i] += data[i]['confirm']
        for i in range(len(china_list[22:])):
            tatol_list[i][country] = china_list[22:][i]
        continue
    data = requests.get(url.format(country),headers).json()['data']
    # print(country,data)
    for i in range(len(data)):
        tatol_list[i][country] = data[i]['confirm']

# color_dict = {"j1":'yellow',"j2":'green',"j3":'blue',"j4":'red',"j5":'brown',"j6":'grey',"j7":'gold'}
cl = ['crimson','dimgrey','silver','rosybrown','lightcoral','indianred','brown','red','tomato','darksalmon','sienna','chocolate','sandybrown','peru','linen','burlywood','orange','gold','lightpink','khaki','darkkhaki','beige','olive','yellow','olivedrab','yellowgreen','darkolivegreen','chartreuse','navy','violet','y','palegreen','springgreen','mediumaquamarine','turquoise','teal','c','cyan','deepskyblue','steelblue','dodgerblue','royalblue','b','slateblue','indigo','m','purple','deeppink']
# print(len(cl))
color_dict = {}
for i in range(len(country_list)):
    color_dict[country_list[i]] = cl[i]

plt.ion()
for count in range(len(tatol_list)):
    value = sorted(list(tatol_list[count].values()))
    label = []
    color_data = []
    copy_data = tatol_list[count]
    for i in value:
        for j in copy_data:
            if i == copy_data[j]:
                label.append(j)
                color_data.append(color_dict[j])
                copy_data[j] = None
                break
    print(len(label))
    if len(label) < 48:
        LONG = Long-48+len(label)
        if LONG < 0:
            break
    plt.clf()
    plt.barh(range(len(label))[LONG:],value[LONG:],tick_label = label[LONG:],height = 0.6,alpha = 0.95,color = color_data[LONG:])
    rcParams['font.sans-serif'] = 'SimHei'  # 设置中文
    # rcParams['font.size'] = 24
    plt.xlabel("现有确诊人数") #设置X轴Y轴名称 
    plt.ylabel("国家") 
    plt.title("喵各国数据统计表")
    # print(date_list[count])
    plt.text(value[-1],LONG+1,date_list[count],ha = 'right',fontsize = 25)
    for i in range(len(label))[LONG:]:
        plt.text(value[i]+0.2,i,str(value[i]),ha = 'left',va = 'center')
    plt.pause(0.08)
    # for i in range(340,355):#######
    #     if count == i:#####
    #         print('\n',count,'\n',len(label),'\n',len(value))
    #     if count == 354:
    #         plt.ioff()
    #         plt.show()

plt.ioff()
plt.show()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
成熟的木叶龙piou成熟的木叶龙piou

哇啊啊啊等一下,

那两个参数url和url_c(11和12行)改成:

url = ' https://api.inews喵newsqa/v1/automation/foreign/daily/list?country={}&' url_c = ' https://api.inews喵newsqa/v1/query/pubished/daily/list?province={}' 不知为何 它发上来时。。。 变成了“喵喵喵”。。。

点赞0


评论


成熟的木叶龙piou成熟的木叶龙piou

啊。。。

好尬啊

回帖都不让。。。

这样吧,反正就是两个链接,

我把它拆开来试试。。。

url = 'http s://api.inews喵newsqa/v1/automation/foreign/daily/list?country={}&' url_c = 'http s://api.inews喵newsqa/v1/query/pubished/daily/list?province={}'

点赞0


评论


成熟的木叶龙piou成熟的木叶龙piou

第7行的“kh喵l”改成"k h t m l"

好烦,以后不发这玩意了。。。

第九行的参数LONG更改后可以控制柱状范围(0<LONG<45)

开始运行后要等一会(耐心,呵呵。)

点赞0


评论