用Python根据新冠肺炎确诊数做出心形词云

2019/04/10 10:10
阅读数 17

在网上看到一个可以查询每天实时疫情数据的api接口,包括中及其世界其他地方,突然想起来可以生成一个词云,让大家一目了然看到现在疫情的情况,希望疫情早日结束!

api接口地址:https://api.yimian.xyz/coro

直接上代码

import pandas as pd
import requests
import json
import wordcloud
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image


def main():
    # 请求数据
    url = "https://api.yimian.xyz/coro"
    data = requests.get(url).text
    json_data = json.loads(data)
    area_dict = dict()
    for province_name in json_data:
        if "cities" in province_name:
            # 判断国内
            for cities in province_name["cities"]:
                # print(cities)
                area = cities["cityName"]
                area_conf = int(cities["currentConfirmedCount"])
                area_dict[area] = area_conf
        else:
            # 判断国外
            area = province_name["provinceName"]
            area_conf = int(province_name["currentConfirmedCount"])
            area_dict[area] = area_conf


    #生成爱心词云
    heart_mask = np.array(Image.open("你的图片地址"))  # 注意点1
    wcloud = wordcloud.WordCloud(scale=32, background_color="white", mask=heart_mask, font_path='你的字体格式地址')  # 注意点2
    wcloud.generate_from_frequencies(frequencies=area_dict)  # 根据数量的大小,越大的字体越大

    plt.figure(dpi=2000)  # 注意点3
    plt.imshow(wcloud, interpolation='bilinear')
    plt.axis('off')
    # plt.show()
    plt.savefig("wuhan3.png")

if __name__ == "__main__":
    main()

 

注意点:

1.设置你想要变成的图片样式,图片最好是白色底

2.scale=32 可以设置字体的清晰程度,越大越清晰,最大可到64;

   font_path='你的字体格式地址'  由于wordcould不支持中文,需要设置中文字体路径,为ttf格式,再C盘下的font文件夹下;也可以直接将ttf格式文件直接负责出来与py同一文件夹下

3.设置图片清晰度,根据要求设置即可

  

最终效果:

 

原文出处:https://www.cnblogs.com/The-Chao/p/12409356.html

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部