在網上看到一個可以查詢每天實時疫情數據的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.設置圖片清晰度,根據要求設置即可
最終效果: