2024.5.25.python.exercise

# # 導入數據處理的包
# # from pyecharts.charts import Line
# # from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts, LabelOpts
# # import json
# #
# # # 打開文件
# # file_us = open("美國.txt", "r", encoding="UTF-8")
# # file_jp = open("日本.txt", "r", encoding="UTF-8")
# # file_in = open("印度.txt", "r", encoding="UTF-8")
# #
# # # 讀文件
# # us_data = file_us.read()
# # jp_data = file_jp.read()
# # in_data = file_in.read()
# #
# # # 規整文件內容
# # us_data = us_data.replace("jsonp_1629344292311_69436(", "")
# # jp_data = jp_data.replace("jsonp_1629350871167_29498(", "")
# # in_data = in_data.replace("jsonp_1629350745930_63180(", "")
# #
# # us_data = us_data[:-2:]
# # jp_data = jp_data[:-2:]
# # in_data = in_data[:-2:]
# #
# # # json 轉化為字典
# # us_data = json.loads(us_data)
# # jp_data = json.loads(jp_data)
# # in_data = json.loads(in_data)
# #
# # # 得到trend數據
# # us_trend_data = us_data["data"][0]["trend"]
# # jp_trend_data = jp_data["data"][0]["trend"]
# # in_trend_data = in_data["data"][0]["trend"]
# #
# # # 得到x軸的數據(x軸是2020全年)
# # us_x_data = us_trend_data["updateDate"][:314]
# # jp_x_data = jp_trend_data["updateDate"][:314]
# # in_x_data = in_trend_data["updateDate"][:314]
# #
# # # 得到y軸的數據(y軸數據是三個國家的數據)
# # us_y_data = us_trend_data["list"][0]["data"][:314]
# # jp_y_data = jp_trend_data["list"][0]["data"][:314]
# # in_y_data = in_trend_data["list"][0]["data"][:314]
# #
# # # 開始繪圖
# # # 創建一個圖
# # line = Line()
# #
# # # 創建圖的x軸
# # line.add_xaxis(us_x_data)
# #
# # # 創建圖的y軸
# # line.add_yaxis("美國確診人數是", us_y_data, label_opts=LabelOpts(is_show=False))
# # line.add_yaxis("日本的確診人數是", jp_y_data, label_opts=LabelOpts(is_show=False))
# # line.add_yaxis("印度的確診人數是", in_y_data, label_opts=LabelOpts(is_show=False))
# #
# # # 配置圖的全局設置
# # line.set_global_opts(
# #     title_opts=TitleOpts(title="2020年美國、日本、印度新冠日感染人數", pos_left="center", pos_bottom="1%"),
# #     legend_opts=LegendOpts(is_show=True),
# #     toolbox_opts=ToolboxOpts(is_show=True),
# #     visualmap_opts=VisualMapOpts(is_show=True)
# # )
# #
# # # 生成圖
# # line.render()
# #
# # # 關閉文件
# # file_us.close()
# # file_jp.close()
# # file_in.close()
#
#
# # 導入要用到的包
# import json
# from pyecharts.charts import Line
# from pyecharts.options import LabelOpts, TitleOpts, ToolboxOpts, VisualMapOpts, LegendOpts
#
# # 讀文件
# file_us = open("美國.txt", "r", encoding="UTF-8")
# file_jp = open("日本.txt", "r", encoding="UTF-8")
# file_in = open("印度.txt", "r", encoding="UTF-8")
# us_data = file_us.read()
# jp_data = file_jp.read()
# in_data = file_in.read()
#
# # 讀取完畢,關閉文件
# file_us.close()
# file_jp.close()
# file_in.close()
#
# # 規整文件內容
# us_data = us_data.replace("jsonp_1629344292311_69436(", "")
# jp_data = jp_data.replace("jsonp_1629350871167_29498(", "")
# in_data = in_data.replace("jsonp_1629350745930_63180(", "")
# us_data = us_data[:-2:]
# jp_data = jp_data[:-2:]
# in_data = in_data[:-2:]
#
# # json轉化為字典
# us_data = json.loads(us_data)
# jp_data = json.loads(jp_data)
# in_data = json.loads(in_data)
#
# # 得到每個國家的trend
# us_trend = us_data["data"][0]["trend"]
# jp_trend = jp_data["data"][0]["trend"]
# in_trend = in_data["data"][0]["trend"]
#
# # 得到x軸內容
# us_x = us_trend["updateDate"][:314:]
# jp_x = jp_trend["updateDate"][:314:]
# in_x = in_trend["updateDate"][:314:]
#
# # 得到y軸內容
# us_y = us_trend["list"][0]["data"][:314:]
# jp_y = jp_trend["list"][0]["data"][:314:]
# in_y = in_trend["list"][0]["data"][:314:]
#
# #開始畫線
# line = Line()
#
# # 創建x軸
# line.add_xaxis(us_x)
#
# # 創建y軸
# line.add_yaxis("美國確診新冠的人數", us_y, label_opts=LabelOpts(is_show=False))
# line.add_yaxis("日本確診新冠的人數", jp_y, label_opts=LabelOpts(is_show=False))
# line.add_yaxis("印度確診新冠的人數", in_y, label_opts=LabelOpts(is_show=False))
#
# # 調整全局設置
# line.set_global_opts(
#     title_opts=TitleOpts(title="2020年美國、日本、印度每日確診新冠人數", pos_left="center", pos_bottom="1%"),
#     legend_opts=LegendOpts(is_show=True),
#     toolbox_opts=ToolboxOpts(is_show=True),
#     visualmap_opts=VisualMapOpts(is_show=True)
# )
#
# # 生成圖
# line.render()# # 導入地圖構建使用的包
# from pyecharts.charts import Map
# from pyecharts.options import VisualMapOpts
#
# # 創建一個地圖
# China_map = Map()
#
# # 給地圖準備數據
# data = [
#     ("北京市", 100),
#     ("上海市", 95),
#     ("深圳市", 90),
#     ("重慶市", 80),
#     ("四川省", 15)
# ]
#
# # 給地圖添加數據
# China_map.add("中國城市發展地圖", data, "china")
#
# # 設置全局變量
# China_map.set_global_opts(
#     visualmap_opts=VisualMapOpts(
#         is_show=True,
#         is_piecewise=True,
#         pieces=[
#             {"min": 1, "max": 19, "label": "1-19", "color": "#CCFFFF"},
#             {"min": 20, "max": 39, "label": "20-39", "color": "#FFFF99"},
#             {"min": 40, "max": 59, "label": "40-59", "color": "#FF9966"},
#             {"min": 60, "max": 79, "label": "60-79", "color": "#FF6666"},
#             {"min": 80, "max": 100, "label": "80-99", "color": "#CC3333"}
#         ]
#     )
# )
#
# # 生成地圖
# China_map.render()# # 導入疫情地圖需要的包
# import json
# from pyecharts.charts import Map
# from pyecharts.options import VisualMapOpts
#
# # 打開需要的數據文件
# China_map = open("疫情.txt", "r", encoding="UTF-8")
# Ch_map = China_map.read()
#
# # 關閉文件
# China_map.close()
#
# # 得到所有地區數據
# area_map = json.loads(Ch_map)
# area_map = area_map["areaTree"][0]["children"]
#
# # 將數據成對封裝成元組,然后再將元組封裝至列表中,然后用列表給地圖提供數據
# China_list = []
# for province in area_map:
#     province_name = province["name"] + "省"
#     province_confirm = province["total"]["confirm"]
#
#     China_list.append((province_name, province_confirm))
#
# # 創建一個疫情地圖
# China_Map = Map()
#
# # 為疫情地圖加入數據
# China_Map.add("中國全國新冠確診人數圖", China_list, "china")
#
# # 為疫情地圖調整全局設置,使得更加美觀
# China_Map.set_global_opts(
#     visualmap_opts=VisualMapOpts(
#         is_show=True,
#         is_piecewise=True,
#         pieces=[
#             {"min": 1, "max": 99, "label": "1-99人確診", "color": "#CCFFFF"},
#             {"min": 100, "max": 1999, "label": "100-1999人確診", "color": "#FFFF99"},
#             {"min": 2000, "max": 9999, "label": "2000-9999人確診", "color": "#FF9966"},
#             {"min": 10000, "max": 39999, "label": "10000-39999人確診", "color": "#FF6666"},
#             {"min": 40000, "label": "40000人以上確診", "color": "#CC3333"}
#         ]
#     )
# )
#
# # 生成疫情地圖
# China_Map.render()# 導入生成重慶疫情地圖的包
import json
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts# 讀數據文件
cq_file = open("疫情.txt", "r", encoding="UTF-8")
cq_data = cq_file.read()# 關閉文件
cq_file.close()# 將數據定位到重慶
cq_data = json.loads(cq_data)
cq_data = cq_data["areaTree"][0]["children"][18]["children"]# 將區縣名字取出,和每個區縣的確診人數構成元組存入列表
cq_list = []
for area in cq_data:area_name = area["name"]area_confirm = area["total"]["confirm"]cq_list.append((area_name, area_confirm))# 創造一個地圖
cq_map = Map()# 向重慶疫情地圖中加入值
cq_map.add("重慶新冠確診人數圖", cq_list, "重慶")# 調整重慶疫情地圖的全局設置(主要是改變顏色)
cq_map.set_global_opts(visualmap_opts=VisualMapOpts(is_show=True,is_piecewise=True,pieces=[{"min": 1, "max": 9, "label": "1-9人確診", "color": "#FFFF99"},{"min": 10, "max": 19, "label": "10-19人確診", "color": "#FF9966"},{"min": 20, "max": 29, "label": "20-29人確診", "color": "#FF6666"},{"min": 30, "label": "30人以上確診", "color": "#CC3333"},])
)# 生成重慶的疫情地圖
cq_map.render()#
# # 導入柱狀圖的包
# from pyecharts.charts import Bar
#
# # 創建一個柱狀圖
# bar1 = Bar()
# bar1.add_xaxis(["中國", "美國", "英國"])
# bar1.add_yaxis("1900年GDP總量", [10, 20, 30])
#
# # 生成圖
# bar1.render()
#
# # 導入時間圖的包
# from pyecharts.charts import Bar
# from pyecharts.options import VisualMapOpts
# from pyecharts.charts import Timeline
# from pyecharts.globals import ThemeType
#
# # 根據時間點創建多個坐標圖
# bar1 = Bar()
# bar1.add_xaxis(["中國", "美國", "英國"])
# bar1.add_yaxis("GDP", [10, 20, 30])
#
# bar2 = Bar()
# bar2.add_xaxis(["中國", "美國", "英國"])
# bar2.add_yaxis("GDP", [40, 120, 85])
#
# bar3 = Bar()
# bar3.add_xaxis(["中國", "美國", "英國"])
# bar3.add_yaxis("GDP", [500, 600, 430])
#
# # 創建時間軸
# timeline = Timeline({"theme": ThemeType.LIGHT})
# timeline.add(bar1, "1900年GDP總量")
# timeline.add(bar2, "1949年GDP總量")
# timeline.add(bar3, "2024年GDP總量")
#
# # 調整時間軸播放
# timeline.add_schema(
#     play_interval=3000,
#     is_timeline_show=True,
#     is_auto_play=True,
#     is_loop_play=True
# )
#
# # 生成時間軸圖
# timeline.render("從清朝到現在的三國GDP變化.html")# 最后一舞(1960-2019年全球GDP top8變化圖)
# 導包
from pyecharts.charts import Bar, Timeline
from pyecharts.options import LabelOpts, TitleOpts
from pyecharts.globals import ThemeType# 讀取數據文件信息
GDP_f = open("1960-2019全球GDP數據.csv", "r", encoding="GB2312")
GDP_data = GDP_f.readlines()  # GDP_data 是列表# 關閉文件
GDP_f.close()# 規整數據文件信息
GDP_data.pop(0)# 定義一個字典來存儲數據
GDP_data_dict = {}
for line in GDP_data:year = int(line.split(",")[0])  # 得到年份country = line.split(",")[1]  # 得到國家GDP = float(line.split(",")[2])  # 得到GDP(因為有些數字是科學計數法,所以說轉化為float來用)try:GDP_data_dict[year].append([country, GDP])except KeyError:GDP_data_dict[year] = []GDP_data_dict[year].append([country, GDP])# 構建timeline對象
timeline = Timeline({"theme": ThemeType.LIGHT})# 排序數據對象
sort_year = sorted(GDP_data_dict.keys())for years in sort_year:GDP_data_dict[years].sort(key=lambda element: element[1], reverse=True)year_data = GDP_data_dict[years][0:8]  # 只取得某一年中GDP前八的國家x_data = []y_data = []for country_gdp in year_data:     # 從GDP前8的國家里面再取,作為柱狀圖的x-y軸x_data.append(country_gdp[0])  # 國家名字y_data.append(country_gdp[1] / 100000000)  # 國家當年的GDP# 建立柱狀圖bar = Bar()x_data.reverse()y_data.reverse()bar.add_xaxis(x_data)bar.add_yaxis("GDP(億)", y_data, label_opts=LabelOpts(position="right"))# 反轉x-y軸bar.reversal_axis()# 設置每一年的標題bar.set_global_opts(title_opts=TitleOpts(title=f"{years}年全球前八國家的GDP"))# 創建時間線timeline.add(bar, str(years))  # 添加一個時間線# 調整時間軸播放
timeline.add_schema(play_interval=3000,  # 時間移動的時間is_timeline_show=True,  # 展示時間線is_auto_play=True,  # 自動播放is_loop_play=True  # 循環播放
)# 生成柱狀圖
timeline.render("1960-2019年全球GDP top8變化圖.html")

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15590.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15590.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15590.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ Primer Plus第十八章復習題

1、使用用大括號括起的初始化列表語法重寫下述代碼。重寫后的代碼不應使用數組ar。 class z200 { private:int j;char ch;double z; public:Z200(int jv,char chv,zv) : j(jv), ch (chv), z(zv){} };double x 8.8; std::string s "what a bracing effect ! …

頭歌OpenGauss數據庫-H.存儲過程第1關:創建存儲過程

編程要求 數據庫中已經存在三個基礎表: student ( num integer, name char(20), age integer, level integer, dept char(20) ); course ( id integer, name char(20) ); sel_course ( studentid integer, courseid integer, score integer ); 創建存儲過程&#xf…

Vue3/Vite引入EasyPlayer.js播放H265視頻錯誤的問題

一、引入EasyPlayer.js github鏈接:GitHub - EasyDarwin/EasyPlayer.js: EasyPlayer.js H5播放器 將demo/html目錄下的 EasyPlayer-element.min.js、EasyPlayer-lib.min.js、EasyPlayer.wasm、jquery.min.js 復制到vue3工程的public目錄下,注意,vue3 vite的index.html文件…

win10配置wsl的深度學習環境

# 1、一步完成wsl:開啟虛擬機、linux子系統、并下載ubuntu # 官方文檔: https://learn.microsoft.com/zh-cn/windows/wsl/install wsl --install# 2、打開windows terminal,選ubuntu交互環境 # 第一次需要配置用戶名和密碼 # 接下來正常使用即可# 3、cud…

自然資源-做好用地用海國土空間規劃符合性審查

自然資源-做好用地用海國土空間規劃符合性審查 為發揮國土空間規劃戰略引領和剛性管控作用,強化國土空間規劃對各專項規劃的指導約束作用,依法依規加強自然資源要素保障,做好用地用海用島國土空間規劃符合性審查工作: 一、加快地…

深入了解數據庫設計中的規范化與反規范化

目錄 零、前言 一、一些基本術語 二、關系模式 2.1. 什么是關系模式 2.2. 示例 三、數據依賴 3.1. 函數依賴 3.1.1. 完全函數依賴 3.1.2. 部分函數依賴 3.1.3. 傳遞函數依賴 3.2. 多值依賴 3.3. 連接依賴 四、規范化 4.1. 第一范式(1NF) …

什么是 DNS 轉發?

DNS轉發是一種網絡傳輸技術,主要用于解決本地DNS服務器無法直接解析某個特定域名的情況。當本地DNS服務器收到一個無法解析的域名請求時,它會將該請求轉發給其他可信的DNS服務器,以獲取所需的解析結果。這種技術有助于優化網絡性能和安全性&a…

【Flutter】有狀態組件StatefulWidgetScaffold組件屬性

🔥 本文由 程序喵正在路上 原創,CSDN首發! 💖 系列專欄:Flutter學習 🌠 首發時間:2024年5月26日 🦋 歡迎關注🖱點贊👍收藏🌟留言🐾 目…

AWS聯網和內容分發之VPC

Amazon Virtual Private Cloud(VPC)是一項用于在AWS云中創建一個邏輯隔離的虛擬網絡的服務,使用戶能夠在云中啟動AWS資源(例如EC2實例),并將其放置在自己定義的虛擬網絡中。 Amazon VPC讓您能夠全面地控制…

AEE運行機制深入剖析——閱讀筆記

AEE運行機制深入剖析——閱讀筆記 在移動設備和嵌入式系統的開發中,應用執行環境(Application Execution Environment,簡稱AEE)起著至關重要的作用。AEE是操作系統層面的一個框架,負責管理應用程序的生命周期&#xf…

JVM性能調優:內存模型及垃圾收集算法

JVM內存結構 根據Java虛擬機規范,JVM內存主要劃分為以下區域: 年輕代(New Generation) 包括Eden空間,用于存放新創建的對象。Survivor區由兩個相同大小的Survivor1和Survivor2組成,用于存放經過初次垃圾回…

AI菜鳥向前飛 — LangChain系列之十四 - Agent系列:從現象看機制(上篇)

上一篇介紹了Agent與LangGraph的基礎技能Tool的必知必會 AI菜鳥向前飛 — LangChain系列之十三 - 關于Tool的必知必會 前面已經詳細介紹了Promp、RAG,終于來到Agent系列(別急后面還有LangGraph),大家可以先看下這張圖&#xff1…

leetcode328. 奇偶鏈表,附詳細解析和代碼注釋

leetcode328. 奇偶鏈表 給定單鏈表的頭節點 head ,將所有索引為奇數的節點和索引為偶數的節點分別組合在一起,然后返回重新排序的列表。 第一個節點的索引被認為是 奇數 , 第二個節點的索引為 偶數 ,以此類推。 請注意&#xff0…

Java的反射機制詳解:動態操作類和對象

Java反射是一種強大的機制,允許程序在運行時查詢和操作類、方法、接口等。這種能力使得Java應用可以在運行時動態地創建對象、調用方法和訪問屬性,極大地提升了程序的靈活性和可擴展性。本文將深入探討Java反射的原理、核心API和實際應用場景&#xff0c…

Flutter 中的 CupertinoSlidingSegmentedControl 小部件:全面指南

Flutter 中的 CupertinoSlidingSegmentedControl 小部件:全面指南 在Flutter框架中,CupertinoSlidingSegmentedControl是一個用于創建類似iOS風格的滑動分段控制器的小部件。這種控制器通常用于允許用戶在不同的視圖或設置之間切換。本文將為您提供一個…

輕量級 K8S 環境 安裝minikube

文章目錄 操作系統DockerDocker CE 鏡像源站使用官方安裝腳本自動安裝 (僅適用于公網環境)安裝校驗Docker代理docker permission denied while trying to connect to the Docker daemon socket minikubekubectl工具minikube dashboard參考資料 操作系統 …

Docker進入容器查看內容并從容器里拷貝文件到宿主機

工作中需要從docker正在運行的鏡像中復制文件到宿主機,于是便將這個過程記錄了下來。 (1)查看正在運行的容器 通過以下命令,可以查看正在運行的容器: docker ps (2)進入某個容器執行腳本 我…

前端人員選擇組件封裝

功能&#xff1a; 人員選擇&#xff0c;返回人員參數&#xff0c;以及人員參數id數組支持單選&#xff0c;多選人員支持重新選擇回顯上次選中人員 <!-- 彈窗 --><a-modal v-model"modalVisible" :footer"null" :bodyStyle"{ padding: 0 }&q…

react中子傳父信息

思路是&#xff1a; 在父組件定義一個函數接受參數&#xff0c;接收的參數用于接收子組件的信息&#xff0c;把函數傳給子組件&#xff0c;子組件調用父親傳來的函數并把要告訴父親的話傳到函數中&#xff0c;就實現了子傳父消息 import { useState } from reactimport { use…

OpenWrt 安裝Quagga 支持ospf Bgp等動態路由協議 軟路由實測 系列四

1 Quagga 是一個路由軟件套件, 提供 OSPFv2,OSPFv3,RIP v1 和 v2,RIPng 和 BGP-4 的實現. 2 web 登錄安裝 #或者ssh登錄安裝 opkg install quagga quagga-zebra quagga-bgpd quagga-watchquagga quagga-vtysh # reboot 3 ssh 登錄 #重啟服務 /etc/init.d/quagga restart #…