數據可視化
可視化效果一:2020年印美日新冠累計確診人數
2020年是新冠疫情爆發(fā)的一年,隨著疫情的爆發(fā),國內外確診人數成了大家關心的熱點,相信大家都有看過類似的疫情報告.本案例對印度美國日本三個國家確診人數的進行了可視化處理,形成了可視化的疫情確診人數報告.
?可視化效果二:全國疫情地圖可視化
?可視化效果三:動態(tài)GDP增長圖
?此處沒有辦法進行動態(tài)變化,希望大家自行想象,接下來開始可視化的學習。
1.json數據轉換
JSON是一種輕量級的數據交互格式,可以按照JSON指定的格式去組織和封裝數據
JSON本質上是一種帶有特定格式的字符串
主要功能:json就是一種在各個編程語言中流通的數據格式,負責不同編程語言中的數據傳遞和交互 類似于:國際通用語言-英語,中國56個民族不同地區(qū)的通用語言-普通話
各種編程語言存儲數據的容器不盡相同,在Python中有字典dict這樣的數據類型,而其它語言可能沒有對應的字典
為了讓不同的語言都能夠相互通用的互相傳遞數據,JSON就是一種非常良好的中轉數據格式。
json格式數據轉化
#json數據的格式可以是: {"name":"admin","age":18} # 也可以是: [{"name":"admin","age":18},{"name":"root","age":16},{"name":"張三","age":20}]
json格式說白了就是python的列表或者字典,唯一的要求就是列表內部嵌套的必須是字典,二對于字典本身的話,就沒有任何格式或者形式上的要求。
json本質上是字符串。
Python數據和Json數據之間的相互轉化
通過代碼來對該知識點進行熟悉
列表嵌套字典形式:
# 導入json模塊
import json
?
# 準備符合格式json格式要求的python數據
data1 = [{"name":"William","age":18},{"name":"Jeff","age":18}]
data2 = [{"name":"張三","age":18},{"name":"李四","age":18}]
json_str1 = json.dumps(data1)
print(type(json_str1))
print(json_str1)
?
json_str2 = json.dumps(data2,ensure_ascii=False)
print(type(json_str2))
print(json_str2)
如果包含中文,那么要加上ensure_ascii=False
字典形式:
import json
# 準備字典,將字典轉換為Json
d = {"name":"張三","address":"浙江"}
json_str = json.dumps(d,ensure_ascii=False)
print(type(json_str))
print(json_str)
# 將python字符串轉換為Python數據類型[{k:v,k:v},{k:v,k:v}]
s = '[{"name":"張三","address":"浙江"},{"name":"李四","address":"江蘇"}]'
l = json.loads(s)
print(type(l))
print(l)
2.pyecharts模塊介紹
概況:
Echarts是個由百度開源的數據可視化,憑借著良好的交互性,精巧的圖表設計,得到了眾多開發(fā)者的認可。而Python是門富有表達力的語言,很適合用于數據處理.當數據分析遇上數據可視化時pyecharts誕生了。
打開官方網站pyecharts.org
?然后打開一個畫廊的功能網站 Document
?pyecharts模塊安裝
使用在前面學過的pip命令即可快速安裝PyEcharts模塊
打開命令提示符,再輸入pip install pyecharts
?然后輸入python,再導入import pyecharts
?
?顯示到這里,說明安裝沒有錯誤,可以正常使用。
3.pyecharts快速入門
1.基礎折線圖
# 導包,導入Line功能構建折線圖對象
from pyecharts.charts import Line
# 得到折線圖對象
line = Line()
# 添加x軸數據
line.add_xaxis(["中國","美國","英國"])
# 添加y軸數據
line.add_yaxis("GDP",[30,20,10])
# 生成圖表
line.render()
構建完成我們的折線圖之后進行運行操作,會發(fā)現旁邊文件欄中出現了render.html,點擊該文件的網頁功能就可以查看相應的網頁功能。
?2.pyecharts的配置選項
全局配置選項:
set_global_opts方法:
這里全局配置選項可以通過set_global_opts方法來進行配置,相應的選項和選項的功能如下:
當我們完成了圖表后,就可以通過set_global_opts方法
Line.set_global_opts( ? ?title_opts=TitleOpts("測試",pos_left="center",pos_bottom="1%"), ? ?legend_opts=LegendOpts(is_show=True), ? ?toolbox_opts=ToolboxOpts(is_show=True), ? ?visualmap_opts=VisualMapOpts(is_show=True), ? ?tooltip_opts=TooltipOpts(is_show=True), )
在我們上面原有的基礎上進行如下操作:
-
配置圖表的標題
-
配置圖例
-
配置鼠標移動效果
-
配置工具欄
-
等整體配置項
# 導包,導入Line功能構建折線圖對象
from pyecharts.charts import Line
# 得到折線圖對象
line = Line()
# 添加x軸數據
line.add_xaxis(["中國","美國","英國"])
# 添加y軸數據
line.add_yaxis("GDP",[30,20,10])
# 設置全局配置項
line.set_global_opts(
title_
)
# 生成圖表
line.render()
在進行查看就會發(fā)現這個全局配置出來的可視化圖相當不錯啦,當然要對這個圖進一步改善,引入更多的全局配置內容,那么就需要通過pyecharts的官網了解啦。
?3.數據處理
打開一個網站ab173,這是一個懶人工具網站。在里面找到Json視圖,然后可以把你選中的數據存放到如下的格式化處理器中,點擊校驗或者回車操作,這時候可以通過點擊視圖,將一大串的內容整合成相應的字典、列表包形式。
?很多需要的數據都可以通過第三方網站進行展示和模擬。
打開pycharm,進行相應的編碼:
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts
# 處理數據
f_us = open("D:/美國.txt",'r',encoding="UTF-8")
us_data = f_us.read() # 獲得文件美國的全部內容
# 去掉不合JSON規(guī)范的開頭
us_data = us_data.replcae("jsonp_1629344292311_69436(", ")
# 去掉不合JSON規(guī)范的結尾
us_data = us_data[:-2]
# JSON轉Python字典
us_dict = json.loads(us_data)
print(type(us_dict))
print(us_dict)
# 獲取trend key
trend_data = us_dict['data'][0]['trend']
# 獲取日期數據,用于x軸,取2020年(到315下表結束)
x_data = json.loads['updateDate'][:314]
# 獲取確認數據,用于y軸,去2020年(到315下標結束)
y_data = trend_data['list'][0]['data']
# 生成圖表
line = line()
# 添加x軸數據
line.add_xaxis(us_x_data) # 使用一個國家的數據即可
# 添加y軸數據
line.add_yaxis('美國確診人數',us_y_data,label_opts=LabelOpts)
# 設置全局設置
line.set_global_opts(
# 標題設置
? ?title_opts = TitleOpts(title='2020年美國確診人數折線圖',pos_left='center',pos_bottom='1%')
)
# 生成圖表
line.render()
# 關閉文件
f.close()
再打開json視圖,將我們簡化過的內容放置于該網站的Json視圖中即可,可以查看
遺憾的是我這邊暫時沒有相應的數據文件和內容,沒有辦法在網頁上對該可視化圖進行顯示。
可視化案例
1.地圖-基礎地圖使用
基本地圖演示:
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts
map = Map()
data = [
? ("浙江",9),
? ("江蘇",19),
? ("北京",99),
? ("上海",199),
? ("海南",299),
? ("臺灣",199),
? ("安徽",299),
? ("廣州",399),
? ("湖北",599),
]
map.add("地圖",data,"china")
# 全局設置
map.set_global_opts(
? ?visualmap_opts=VisualMapOpts(
? ? ? ?is_show=True,
? ? ? ?is_piecewise=True,
? ? ? ?pieces=[
? ? ? ? ? {"min": 1, "max": 9, "label": "1-9", "color": "#CCFFFF"},
? ? ? ? ? {"min": 10, "max": 99, "label": "10-99", "color": "#FF6666"},
? ? ? ? ? {"min": 100, "max": 600, "label": "100-600", "color": "#990033"}
? ? ? ]
? )
)
# 繪圖
map.render()
通過ab173網站,在其中的前端中找到rgb顏色對照表
2.全國疫情地圖構建
雖然沒有相應的數據,但是不妨礙我們對代碼進行熟悉和操作,讓我們打開pychart
"""
演示全國疫情可視化地圖開發(fā)
"""
import json
from pyecharts.charts import Map
from pyecharts.options import *
# 讀取文件
f = open("D:/疫情.txt","r",encoding="UTF-8")
data = f.read() # 全國疫情數據獲取
# 關閉文件
f.close()
# 獲取到各省的數據
?
# 將字符串json轉化為python的字典
data_dict = json.loads(data)
#從字典中取出每個省份的數據
province_data_list = data_dict["areaTree"][0]["children"]
# 組裝每個省份和確診人數為元組,并各省的數據都封裝入列表
for province_data in province_data_list:
? ?province_name = province_data["name"] #省份名稱
? ?province_confirm = province_data["total"]["confirm"] # 確診人數
? ?data_list.append(province_name,province_confirm)
print(data_list)
# 創(chuàng)建地圖
map = Map()
# 添加數據
map.add("各省份確診人數",data_list,"china")
# 設置全局配置,定制分段的視覺映射
map.set_global_opts{
? ?title_opts=TitleOpts(title="全國疫情地圖"),
? ?visualmap_opts=VisualMapOpts(
? ? ? ?is_show=True,
? ? ? ?is_piecewise=True,
? ? ? ?pieces=[
? ? ? ? ? {"min":1,"max":99,"lable":"1~99人","color":"#CCFFFF"},
? ? ? ? ? {"min":100,"max":999,"lable":"100~999人","color":"#FFFF99"},
? ? ? ? ? {"min":1000,"max":4999,"lable":"1000~4999人","color":"#FF9966"},
? ? ? ? ? {"min":5000,"max":9999,"lable":"5000~9999人","color":"#FF6666"},
? ? ? ? ? {"min":10000,"max":99999,"lable":"10000~99999人","color":"#CC3333"},
? ? ? ? ? {"min":100000,"lable":"100000+人","color":"#990033"}
? ? ? ]
? ),
}
# 繪圖
map.render()
3.浙江省空氣質量地圖繪制
import json
from pyecharts.charts import Map
from pyecharts.options import *
#f = open("D:/空氣質量.txt","r",encording="UTF-8")
#data = f.read()
#f.close()
#data_dict = json.loads(data)
#cities_data = data_dict["areaTree"][3]["children"]
data_list = []
#for city_data in cities_data:
? ?#city_name = city_data["name"]+"市"
? ?#city_confirm = city_data["total"]["confirm"]
? ?#data_list(city_name,city_confirm)
#print(data_list)
data_list.append(("杭州",12))
data_list.append(("湖州",13))
data_list.append(("寧波",15))
data_list.append(("溫州",18))
data_list.append(("嘉興",20))
data_list.append(("麗水",34))
data_list.append(("臺州",56))
data_list.append(("衢州",53))
data_list.append(("紹興",18))
?
map = Map()
map.add("浙江省空氣質量監(jiān)測",data_list,"浙江")
map.set_global_opts(
? ?title_opts=TitleOpts(title="浙江省空氣質量監(jiān)測地圖"),
? ?visualmap_opts=VisualMapOpts(
? ? ? ?is_show=True,
? ? ? ?is_piecewise=True,
? ? ? ?pieces=[
? ? ? ? ? {"min":1,"max":15,"lable":"優(yōu)秀","color":"#CCFFFF"},
? ? ? ? ? {"min": 16, "max": 30, "lable": "良好", "color": "#FFFF99"},
? ? ? ? ? {"min": 31, "max": 45, "lable": "一般", "color": "#CC9966"},
? ? ? ? ? {"min": 46, "max": 60, "lable": "較差", "color": "#FF6666"},
? ? ? ? ? {"min": 61, "max": 75, "lable": "優(yōu)秀", "color": "#CC3333"}
? ? ? ]
? )
?
)
map.render("浙江省空氣質量監(jiān)測.html")
?
?4.模仿百度空氣可視化
下面是百度的空氣質量可視化圖:
import pyecharts.options as opts
from pyecharts.charts import BMap
?
data = [
? ["海門", 9],
? ["鄂爾多斯", 12],
? ["招遠", 12],
? ["舟山", 12],
? ["齊齊哈爾", 14],
? ["鹽城", 15],
? ["赤峰", 16],
? ["青島", 18],
? ["乳山", 18],
? ["金昌", 19],
? ["泉州", 21],
? ["萊西", 21],
? ["日照", 21],
? ["膠南", 22],
? ["南通", 23],
? ["拉薩", 24],
? ["云浮", 24],
? ["梅州", 25],
? ["文登", 25],
? ["上海", 25],
? ["攀枝花", 25],
? ["威海", 25],
? ["承德", 25],
? ["廈門", 26],
? ["汕尾", 26],
? ["潮州", 26],
? ["丹東", 27],
? ["太倉", 27],
? ["曲靖", 27],
? ["煙臺", 28],
? ["福州", 29],
? ["瓦房店", 30],
? ["即墨", 30],
? ["撫順", 31],
? ["玉溪", 31],
? ["張家口", 31],
? ["陽泉", 31],
? ["萊州", 32],
? ["湖州", 32],
? ["汕頭", 32],
? ["昆山", 33],
? ["寧波", 33],
? ["湛江", 33],
? ["揭陽", 34],
? ["榮成", 34],
? ["連云港", 35],
? ["葫蘆島", 35],
? ["常熟", 36],
? ["東莞", 36],
? ["河源", 36],
? ["淮安", 36],
? ["泰州", 36],
? ["南寧", 37],
? ["營口", 37],
? ["惠州", 37],
? ["江陰", 37],
? ["蓬萊", 37],
? ["韶關", 38],
? ["嘉峪關", 38],
? ["廣州", 38],
? ["延安", 38],
? ["太原", 39],
? ["清遠", 39],
? ["中山", 39],
? ["昆明", 39],
? ["壽光", 40],
? ["盤錦", 40],
? ["長治", 41],
? ["深圳", 41],
? ["珠海", 42],
? ["宿遷", 43],
? ["咸陽", 43],
? ["銅川", 44],
? ["平度", 44],
? ["佛山", 44],
? ["???, 44],
? ["江門", 45],
? ["章丘", 45],
? ["肇慶", 46],
? ["大連", 47],
? ["臨汾", 47],
? ["吳江", 47],
? ["石嘴山", 49],
? ["沈陽", 50],
? ["蘇州", 50],
? ["茂名", 50],
? ["嘉興", 51],
? ["長春", 51],
? ["膠州", 52],
? ["銀川", 52],
? ["張家港", 52],
? ["三門峽", 53],
? ["錦州", 54],
? ["南昌", 54],
? ["柳州", 54],
? ["三亞", 54],
? ["自貢", 56],
? ["吉林", 56],
? ["陽江", 57],
? ["瀘州", 57],
? ["西寧", 57],
? ["宜賓", 58],
? ["呼和浩特", 58],
? ["成都", 58],
? ["大同", 58],
? ["鎮(zhèn)江", 59],
? ["桂林", 59],
? ["張家界", 59],
? ["宜興", 59],
? ["北海", 60],
? ["西安", 61],
? ["金壇", 62],
? ["東營", 62],
? ["牡丹江", 63],
? ["遵義", 63],
? ["紹興", 63],
? ["揚州", 64],
? ["常州", 64],
? ["濰坊", 65],
? ["重慶", 66],
? ["臺州", 67],
? ["南京", 67],
? ["濱州", 70],
? ["貴陽", 71],
? ["無錫", 71],
? ["本溪", 71],
? ["克拉瑪依", 72],
? ["渭南", 72],
? ["馬鞍山", 72],
? ["寶雞", 72],
? ["焦作", 75],
? ["句容", 75],
? ["北京", 79],
? ["徐州", 79],
? ["衡水", 80],
? ["包頭", 80],
? ["綿陽", 80],
? ["烏魯木齊", 84],
? ["棗莊", 84],
? ["杭州", 84],
? ["淄博", 85],
? ["鞍山", 86],
? ["溧陽", 86],
? ["庫爾勒", 86],
? ["安陽", 90],
? ["開封", 90],
? ["濟南", 92],
? ["德陽", 93],
? ["溫州", 95],
? ["九江", 96],
? ["邯鄲", 98],
? ["臨安", 99],
? ["蘭州", 99],
? ["滄州", 100],
? ["臨沂", 103],
? ["南充", 104],
? ["天津", 105],
? ["富陽", 106],
? ["泰安", 112],
? ["諸暨", 112],
? ["鄭州", 113],
? ["哈爾濱", 114],
? ["聊城", 116],
? ["蕪湖", 117],
? ["唐山", 119],
? ["平頂山", 119],
? ["邢臺", 119],
? ["德州", 120],
? ["濟寧", 120],
? ["荊州", 127],
? ["宜昌", 130],
? ["義烏", 132],
? ["麗水", 133],
? ["洛陽", 134],
? ["秦皇島", 136],
? ["株洲", 143],
? ["石家莊", 147],
? ["萊蕪", 148],
? ["常德", 152],
? ["保定", 153],
? ["湘潭", 154],
? ["金華", 157],
? ["岳陽", 169],
? ["長沙", 175],
? ["衢州", 177],
? ["廊坊", 193],
? ["菏澤", 194],
? ["合肥", 229],
? ["武漢", 273],
? ["大慶", 279],
]
?
geoCoordMap = {
? ?"海門": [121.15, 31.89],
? ?"鄂爾多斯": [109.781327, 39.608266],
? ?"招遠": [120.38, 37.35],
? ?"舟山": [122.207216, 29.985295],
? ?"齊齊哈爾": [123.97, 47.33],
? ?"鹽城": [120.13, 33.38],
? ?"赤峰": [118.87, 42.28],
? ?"青島": [120.33, 36.07],
? ?"乳山": [121.52, 36.89],
? ?"金昌": [102.188043, 38.520089],
? ?"泉州": [118.58, 24.93],
? ?"萊西": [120.53, 36.86],
? ?"日照": [119.46, 35.42],
? ?"膠南": [119.97, 35.88],
? ?"南通": [121.05, 32.08],
? ?"拉薩": [91.11, 29.97],
? ?"云浮": [112.02, 22.93],
? ?"梅州": [116.1, 24.55],
? ?"文登": [122.05, 37.2],
? ?"上海": [121.48, 31.22],
? ?"攀枝花": [101.718637, 26.582347],
? ?"威海": [122.1, 37.5],
? ?"承德": [117.93, 40.97],
? ?"廈門": [118.1, 24.46],
? ?"汕尾": [115.375279, 22.786211],
? ?"潮州": [116.63, 23.68],
? ?"丹東": [124.37, 40.13],
? ?"太倉": [121.1, 31.45],
? ?"曲靖": [103.79, 25.51],
? ?"煙臺": [121.39, 37.52],
? ?"福州": [119.3, 26.08],
? ?"瓦房店": [121.979603, 39.627114],
? ?"即墨": [120.45, 36.38],
? ?"撫順": [123.97, 41.97],
? ?"玉溪": [102.52, 24.35],
? ?"張家口": [114.87, 40.82],
? ?"陽泉": [113.57, 37.85],
? ?"萊州": [119.942327, 37.177017],
? ?"湖州": [120.1, 30.86],
? ?"汕頭": [116.69, 23.39],
? ?"昆山": [120.95, 31.39],
? ?"寧波": [121.56, 29.86],
? ?"湛江": [110.359377, 21.270708],
? ?"揭陽": [116.35, 23.55],
? ?"榮成": [122.41, 37.16],
? ?"連云港": [119.16, 34.59],
? ?"葫蘆島": [120.836932, 40.711052],
? ?"常熟": [120.74, 31.64],
? ?"東莞": [113.75, 23.04],
? ?"河源": [114.68, 23.73],
? ?"淮安": [119.15, 33.5],
? ?"泰州": [119.9, 32.49],
? ?"南寧": [108.33, 22.84],
? ?"營口": [122.18, 40.65],
? ?"惠州": [114.4, 23.09],
? ?"江陰": [120.26, 31.91],
? ?"蓬萊": [120.75, 37.8],
? ?"韶關": [113.62, 24.84],
? ?"嘉峪關": [98.289152, 39.77313],
? ?"廣州": [113.23, 23.16],
? ?"延安": [109.47, 36.6],
? ?"太原": [112.53, 37.87],
? ?"清遠": [113.01, 23.7],
? ?"中山": [113.38, 22.52],
? ?"昆明": [102.73, 25.04],
? ?"壽光": [118.73, 36.86],
? ?"盤錦": [122.070714, 41.119997],
? ?"長治": [113.08, 36.18],
? ?"深圳": [114.07, 22.62],
? ?"珠海": [113.52, 22.3],
? ?"宿遷": [118.3, 33.96],
? ?"咸陽": [108.72, 34.36],
? ?"銅川": [109.11, 35.09],
? ?"平度": [119.97, 36.77],
? ?"佛山": [113.11, 23.05],
? ?"???: [110.35, 20.02],
? ?"江門": [113.06, 22.61],
? ?"章丘": [117.53, 36.72],
? ?"肇慶": [112.44, 23.05],
? ?"大連": [121.62, 38.92],
? ?"臨汾": [111.5, 36.08],
? ?"吳江": [120.63, 31.16],
? ?"石嘴山": [106.39, 39.04],
? ?"沈陽": [123.38, 41.8],
? ?"蘇州": [120.62, 31.32],
? ?"茂名": [110.88, 21.68],
? ?"嘉興": [120.76, 30.77],
? ?"長春": [125.35, 43.88],
? ?"膠州": [120.03336, 36.264622],
? ?"銀川": [106.27, 38.47],
? ?"張家港": [120.555821, 31.875428],
? ?"三門峽": [111.19, 34.76],
? ?"錦州": [121.15, 41.13],
? ?"南昌": [115.89, 28.68],
? ?"柳州": [109.4, 24.33],
? ?"三亞": [109.511909, 18.252847],
? ?"自貢": [104.778442, 29.33903],
? ?"吉林": [126.57, 43.87],
? ?"陽江": [111.95, 21.85],
? ?"瀘州": [105.39, 28.91],
? ?"西寧": [101.74, 36.56],
? ?"宜賓": [104.56, 29.77],
? ?"呼和浩特": [111.65, 40.82],
? ?"成都": [104.06, 30.67],
? ?"大同": [113.3, 40.12],
? ?"鎮(zhèn)江": [119.44, 32.2],
? ?"桂林": [110.28, 25.29],
? ?"張家界": [110.479191, 29.117096],
? ?"宜興": [119.82, 31.36],
? ?"北海": [109.12, 21.49],
? ?"西安": [108.95, 34.27],
? ?"金壇": [119.56, 31.74],
? ?"東營": [118.49, 37.46],
? ?"牡丹江": [129.58, 44.6],
? ?"遵義": [106.9, 27.7],
? ?"紹興": [120.58, 30.01],
? ?"揚州": [119.42, 32.39],
? ?"常州": [119.95, 31.79],
? ?"濰坊": [119.1, 36.62],
? ?"重慶": [106.54, 29.59],
? ?"臺州": [121.420757, 28.656386],
? ?"南京": [118.78, 32.04],
? ?"濱州": [118.03, 37.36],
? ?"貴陽": [106.71, 26.57],
? ?"無錫": [120.29, 31.59],
? ?"本溪": [123.73, 41.3],
? ?"克拉瑪依": [84.77, 45.59],
? ?"渭南": [109.5, 34.52],
? ?"馬鞍山": [118.48, 31.56],
? ?"寶雞": [107.15, 34.38],
? ?"焦作": [113.21, 35.24],
? ?"句容": [119.16, 31.95],
? ?"北京": [116.46, 39.92],
? ?"徐州": [117.2, 34.26],
? ?"衡水": [115.72, 37.72],
? ?"包頭": [110, 40.58],
? ?"綿陽": [104.73, 31.48],
? ?"烏魯木齊": [87.68, 43.77],
? ?"棗莊": [117.57, 34.86],
? ?"杭州": [120.19, 30.26],
? ?"淄博": [118.05, 36.78],
? ?"鞍山": [122.85, 41.12],
? ?"溧陽": [119.48, 31.43],
? ?"庫爾勒": [86.06, 41.68],
? ?"安陽": [114.35, 36.1],
? ?"開封": [114.35, 34.79],
? ?"濟南": [117, 36.65],
? ?"德陽": [104.37, 31.13],
? ?"溫州": [120.65, 28.01],
? ?"九江": [115.97, 29.71],
? ?"邯鄲": [114.47, 36.6],
? ?"臨安": [119.72, 30.23],
? ?"蘭州": [103.73, 36.03],
? ?"滄州": [116.83, 38.33],
? ?"臨沂": [118.35, 35.05],
? ?"南充": [106.110698, 30.837793],
? ?"天津": [117.2, 39.13],
? ?"富陽": [119.95, 30.07],
? ?"泰安": [117.13, 36.18],
? ?"諸暨": [120.23, 29.71],
? ?"鄭州": [113.65, 34.76],
? ?"哈爾濱": [126.63, 45.75],
? ?"聊城": [115.97, 36.45],
? ?"蕪湖": [118.38, 31.33],
? ?"唐山": [118.02, 39.63],
? ?"平頂山": [113.29, 33.75],
? ?"邢臺": [114.48, 37.05],
? ?"德州": [116.29, 37.45],
? ?"濟寧": [116.59, 35.38],
? ?"荊州": [112.239741, 30.335165],
? ?"宜昌": [111.3, 30.7],
? ?"義烏": [120.06, 29.32],
? ?"麗水": [119.92, 28.45],
? ?"洛陽": [112.44, 34.7],
? ?"秦皇島": [119.57, 39.95],
? ?"株洲": [113.16, 27.83],
? ?"石家莊": [114.48, 38.03],
? ?"萊蕪": [117.67, 36.19],
? ?"常德": [111.69, 29.05],
? ?"保定": [115.48, 38.85],
? ?"湘潭": [112.91, 27.87],
? ?"金華": [119.64, 29.12],
? ?"岳陽": [113.09, 29.37],
? ?"長沙": [113, 28.21],
? ?"衢州": [118.88, 28.97],
? ?"廊坊": [116.7, 39.53],
? ?"菏澤": [115.480656, 35.23375],
? ?"合肥": [117.27, 31.86],
? ?"武漢": [114.31, 30.52],
? ?"大慶": [125.03, 46.58],
}
?
?
def convert_data():
? ?res = []
? ?for i in range(len(data)):
? ? ? ?geo_coord = geoCoordMap[data[i][0]]
? ? ? ?geo_coord.append(data[i][1])
? ? ? ?res.append([data[i][0], geo_coord])
? ?return res
?
?
(
? ?BMap(init_opts=opts.InitOpts(width="1200px", height="800px"))
? .add(
? ? ? ?type_="effectScatter",
? ? ? ?series_name="pm2.5",
? ? ? ?data_pair=convert_data(),
? ? ? ?symbol_size=10,
? ? ? ?effect_opts=opts.EffectOpts(),
? ? ? ?label_opts=opts.LabelOpts(formatter="", position="right", is_show=False),
? ? ? ?itemstyle_opts=opts.ItemStyleOpts(color="purple"),
? )
? .add_schema(
? ? ? ?baidu_ak="FAKE_AK",
? ? ? ?center=[104.114129, 37.550339],
? ? ? ?zoom=5,
? ? ? ?is_roam=True,
? ? ? ?map_style={
? ? ? ? ? ?"styleJson": [
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "water",
? ? ? ? ? ? ? ? ? ?"elementType": "all",
? ? ? ? ? ? ? ? ? ?"stylers": {"color": "#044161"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "land",
? ? ? ? ? ? ? ? ? ?"elementType": "all",
? ? ? ? ? ? ? ? ? ?"stylers": {"color": "#004981"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "boundary",
? ? ? ? ? ? ? ? ? ?"elementType": "geometry",
? ? ? ? ? ? ? ? ? ?"stylers": {"color": "#064f85"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "railway",
? ? ? ? ? ? ? ? ? ?"elementType": "all",
? ? ? ? ? ? ? ? ? ?"stylers": {"visibility": "off"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "highway",
? ? ? ? ? ? ? ? ? ?"elementType": "geometry",
? ? ? ? ? ? ? ? ? ?"stylers": {"color": "#004981"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "highway",
? ? ? ? ? ? ? ? ? ?"elementType": "geometry.fill",
? ? ? ? ? ? ? ? ? ?"stylers": {"color": "#005b96", "lightness": 1},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "highway",
? ? ? ? ? ? ? ? ? ?"elementType": "labels",
? ? ? ? ? ? ? ? ? ?"stylers": {"visibility": "off"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "arterial",
? ? ? ? ? ? ? ? ? ?"elementType": "geometry",
? ? ? ? ? ? ? ? ? ?"stylers": {"color": "#004981"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "arterial",
? ? ? ? ? ? ? ? ? ?"elementType": "geometry.fill",
? ? ? ? ? ? ? ? ? ?"stylers": {"color": "#00508b"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "poi",
? ? ? ? ? ? ? ? ? ?"elementType": "all",
? ? ? ? ? ? ? ? ? ?"stylers": {"visibility": "off"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "green",
? ? ? ? ? ? ? ? ? ?"elementType": "all",
? ? ? ? ? ? ? ? ? ?"stylers": {"color": "#056197", "visibility": "off"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "subway",
? ? ? ? ? ? ? ? ? ?"elementType": "all",
? ? ? ? ? ? ? ? ? ?"stylers": {"visibility": "off"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "manmade",
? ? ? ? ? ? ? ? ? ?"elementType": "all",
? ? ? ? ? ? ? ? ? ?"stylers": {"visibility": "off"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "local",
? ? ? ? ? ? ? ? ? ?"elementType": "all",
? ? ? ? ? ? ? ? ? ?"stylers": {"visibility": "off"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "arterial",
? ? ? ? ? ? ? ? ? ?"elementType": "labels",
? ? ? ? ? ? ? ? ? ?"stylers": {"visibility": "off"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "boundary",
? ? ? ? ? ? ? ? ? ?"elementType": "geometry.fill",
? ? ? ? ? ? ? ? ? ?"stylers": {"color": "#029fd4"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "building",
? ? ? ? ? ? ? ? ? ?"elementType": "all",
? ? ? ? ? ? ? ? ? ?"stylers": {"color": "#1a5787"},
? ? ? ? ? ? ? },
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?"featureType": "label",
? ? ? ? ? ? ? ? ? ?"elementType": "all",
? ? ? ? ? ? ? ? ? ?"stylers": {"visibility": "off"},
? ? ? ? ? ? ? },
? ? ? ? ? ]
? ? ? },
? )
? .set_global_opts(
? ? ? ?title_opts=opts.TitleOpts(
? ? ? ? ? ?title="全國主要城市空氣質量",
? ? ? ? ? ?subtitle="data from PM25.in",
? ? ? ? ? ?subtitle_link="http://www.pm25.in",
? ? ? ? ? ?pos_left="center",
? ? ? ? ? ?title_textstyle_opts=opts.TextStyleOpts(color="#fff"),
? ? ? ),
? ? ? ?tooltip_opts=opts.TooltipOpts(trigger="item"),
? )
? .render("air_quality_baidu_map.html")
)
目前還是以熟悉為主,多多借鑒官網上的代碼,能夠有效提升自己的構圖水平!
柱狀圖構建
1.基礎柱狀圖
掌握構建一個基礎的柱狀圖并能夠反轉x和y軸
通過Bar構建基礎柱狀圖
from pyecharts.charts import Bar
from pyecharts.options import *
# 構建柱狀圖對象
bar = Bar()
# 添加x軸數據
bar.add_xaxis(["中國","美國","英國"])
# 添加y軸數據
bar.add_yaxis("GDP",[30, 20, 10])
# 繪圖
bar.render("基礎柱狀圖.html")
?如果想要反轉x、y軸的話,實際上只需要用到bar.reversal_axis()即可
from pyecharts.charts import Bar
from pyecharts.options import *
# 構建柱狀圖對象
bar = Bar()
# 添加x軸數據
bar.add_xaxis(["中國","美國","英國"])
# 添加y軸數據
bar.add_yaxis("GDP",[30, 20, 10])
# 反轉x、y軸
bar.reversal_axis()
# 繪圖
bar.render("基礎柱狀圖.html")
?
?為了將數字標簽全都移到右邊,我們可以在其中增加相應的label_opts="right"
from pyecharts.charts import Bar
from pyecharts.options import LabelOpts
# 構建柱狀圖對象
bar = Bar()
# 添加x軸數據
bar.add_xaxis(["中國","美國","英國"])
# 添加y軸數據
bar.add_yaxis("GDP",[30, 20, 10],label_opts=LabelOpts(position="right"))
# 反轉x、y軸
bar.reversal_axis()
# 繪圖
bar.render("基礎柱狀圖.html")
?2.基礎時間線柱狀圖
Timeline()——時間線
柱狀圖描述的是分類數據,回答的是每一個分類中「有多少?」這個問題。這是柱狀圖的主要特點,同時柱狀圖很難動態(tài)的描述一個趨勢性的數據.這里pyecharts.為我們提供了一種解決方案——時間線
如果說一個Bar、Line對象是一張圖表的話,時間線就是創(chuàng)建一個一維的x軸,軸上每一個點就是一個圖表對象。
創(chuàng)建時間線的代碼:
from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
bar1 = Bar()
bar1.add_xaxis(["中國","美國","英國"])
bar1.add_yaxis("GDP",[30, 20, 10], label_opts=LabelOpts(position="right"))
bar1.reversal_axis()
?
bar2 = Bar()
bar2.add_xaxis(["中國","美國","英國"])
bar2.add_yaxis("GDP",[50, 30, 20], label_opts=LabelOpts(position="right"))
bar2.reversal_axis()
?
bar3 = Bar()
bar3.add_xaxis(["中國","美國","英國"])
bar3.add_yaxis("GDP",[70, 50, 40], label_opts=LabelOpts(position="right"))
bar3.reversal_axis()
?
# 創(chuàng)建時間線對象
timeline = Timeline()
# timeline對象添加bar柱狀圖
timeline.add(bar1,"2021年GDP")
timeline.add(bar2,"2022年GDP")
timeline.add(bar3,"2023年GDP")
# 通過時間線繪圖
timeline.render("基礎柱狀圖-時間線.html")
?下面的時間線可以來回移動,顯示2021或者2022的GDP數據。
如果想要添加自動播放功能的話,可以加上下面的設置代碼
# 設置自動播放
timeline.add_schema(
? ?play_interval=1000,# 自動播放的時間間隔,單位毫秒
? ?is_timeline_show=True,# 是否在自動播放的時候,顯示時間線
? ?is_auto_play=True,# 是否自動播放
? ?is_loop_play=True# 是否循環(huán)自動播放
)
加上主題的話,可以再增加,如下是目前該可視化代碼的完整版本啦:
from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType
bar1 = Bar()
bar1.add_xaxis(["中國","美國","英國"])
bar1.add_yaxis("GDP",[30, 20, 10], label_opts=LabelOpts(position="right"))
bar1.reversal_axis()
?
bar2 = Bar()
bar2.add_xaxis(["中國","美國","英國"])
bar2.add_yaxis("GDP",[50, 30, 20], label_opts=LabelOpts(position="right"))
bar2.reversal_axis()
?
bar3 = Bar()
bar3.add_xaxis(["中國","美國","英國"])
bar3.add_yaxis("GDP",[70, 50, 40], label_opts=LabelOpts(position="right"))
bar3.reversal_axis()
?
# 創(chuàng)建時間線對象
timeline = Timeline({"theme":ThemeType.ESSOS})
# timeline對象添加bar柱狀圖
timeline.add(bar1,"2021年GDP")
timeline.add(bar2,"2022年GDP")
timeline.add(bar3,"2023年GDP")
# 設置自動播放
timeline.add_schema(
? ?play_interval=1000,# 自動播放的時間間隔,單位毫秒
? ?is_timeline_show=True,# 是否在自動播放的時候,顯示時間線
? ?is_auto_play=True,# 是否自動播放
? ?is_loop_play=True# 是否循環(huán)自動播放
)
# 通過時間線繪圖
timeline.render("基礎柱狀圖-時間線.html")
?3.GDP動態(tài)柱狀圖繪制
列表的sort方法
在前面我們學習過sorted函數,可以對數據容器進行排序。
在后面的數據處理中,我們需要對列表進行排序,并指定排序規(guī)則,sorted函數就無法完成了。
我們補充學習列表的sort方法。
使用方式:
列表.sort(key=選擇排序依據的函數, reverse=True|False)
參數key,是要求傳入一個函數,表示將列表的每一個元素都傳入函數中,返回排序的依據
參數reverse,是否反轉排序結果,True表示降序,False表示升序
列表的sort方法:
帶名函數形式
# 準備列表
my_list = [["a",33],["b",55],["c",11]]
# 排序,基于帶名函數
# 定義排序的方法
def choose_sort_key(element):
? ?return element[1]
my_list.sort(key=choose_sort_key, reverse=True)
print(my_list)
[['b', 55], ['a', 33], ['c', 11]]
需求分析:
簡單分析后,發(fā)現最終效果圖中需要:
-
GDP數據處理為億級
-
有時間軸,按照年份為時間軸的點
-
x軸和y軸反轉,同時每一年的數據只要前8名國家
-
有標題,標題的年份會動態(tài)更改
-
設置了主題為LIGHT
首先先編一個GDP數據,存儲在記事本上,至于是否合理暫且不論,嘿嘿。
"""
演示第三個圖表:GDP動態(tài)柱狀圖開發(fā)
"""
from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
?
# 讀取數據
f = open("C:/Users/asus/Desktop/C2唐祎敏學習筆記/黑馬Python/test文件/1960-2019年全球八國GDP數據.txt","r",encoding="UTF-8")
data_lines = f.readlines()
f.close()
data_lines.pop(0)
# 先定義一個字典對象
data_dict = {}
for line in data_lines:
? ?year = int(line.split(",")[0])
? ?country = line.split(",")[1]
? ?gdp = float(line.split(",")[2])
? ?# 判斷字典key
? ?try:
? ? ? ?data_dict[year].append([country, gdp])
? ?except KeyError:
? ? ? ?data_dict[year] = []
? ? ? ?data_dict[year].append([country, gdp])
timeline = Timeline({"theme": ThemeType.LIGHT})
sorted_year_list = sorted(data_dict.keys())
# 排序年份
for year in sorted_year_list:
? ?data_dict[year].sort(key=lambda element: element[1], reverse=True)
? ?# 取出本年份前8名國家
? ?year_data = data_dict[year][0:8]
? ?x_data = []
? ?y_data = []
? ?for country_gdp in year_data:
? ? ? ?x_data.append(country_gdp[0])
? ? ? ?y_data.append(country_gdp[1] / 100000000)
? ?bar = Bar()
? ?bar.add_xaxis(x_data)
? ?bar.add_yaxis("GDP(億)",y_data,label_opts=LabelOpts(position="right"))
? ?bar.reversal_axis()
# 每一年的標題
? ?bar.set_global_opts(
? ? ? ?title_opts=TitleOpts(title=f"{year}年全球前8GDP數據")
? )
? ?
? ?timeline.add(bar, str(year))
# 時間自動播放
timeline.add_schema(
? ?play_interval=1000,
? ?is_timeline_show=True,
? ?is_auto_play=True,
? ?is_loop_play=False
)
timeline.render("1960~2020全國GDP前8國家.html")
?有億點點夸張,嘿嘿,但是我們確實實現了這個可視化圖像文章來源:http://www.zghlxwxcb.cn/news/detail-429265.html
下面是我捏造的數據:文章來源地址http://www.zghlxwxcb.cn/news/detail-429265.html
year,GDP,rate 1960,美國,5.433E+11 1960,英國,73233967692 1960,法國,62225478000 1960,中國,59716467625 1960,日本,44307342950 1960,加拿大,40461721692 1960,意大利,40385288344 1960,印度,37029883875 1960,澳大利亞,18577668271 1960,瑞典,15822585033 1960,巴西,15165569912 1960,土耳其,13995067817 1960,墨西哥,13040000000 1960,荷蘭,12276734172 1960,西班牙,12072126075 1960,比利時,11658722590 1960,瑞士,9522746719 1960,委內瑞拉,7779090909 1960,南非,7575396972 1960,菲律賓,6684568805 1960,奧地利,6592693841 1960,丹麥,6248946880 1960,新西蘭,5485854791 1960,芬蘭,5224102195 1960,挪威,5163271598 1960,希臘,4335186016 1960,孟加拉,4274893913 1960,伊朗,4199134390 1960,尼日利亞,4196092258 1960,智利,4110000000 1960,哥倫比亞,4031152976 1960,韓國,3958190758 1960,巴基斯坦,3749265014 1960,剛果(金),3359404117 1960,葡萄牙,3193200404 1960,泰國,2760747471 1960,阿爾及利亞,2723648551 1960,以色列,2598500000 1960,秘魯,2571908062 1960,摩洛哥,2037150716 1960,愛爾蘭,1939329775 1960,馬來西亞,1916241996 1960,波多黎各,1691900000 1970,美國,6.433E+11 1970,英國,83233967692 1970,法國,72225478000 1970,中國,69716467625 1970,日本,54307342950 1970,加拿大,50461721692 1970,意大利,50385288344 1970,印度,47029883875 1970,澳大利亞,28577668271 1970,瑞典,25822585033 1970,巴西,35165569912 1970,土耳其,23995067817 1970,墨西哥,23040000000 1970,荷蘭,22276734172 1970,西班牙,12072126075 1970,比利時,19658722590 1970,瑞士,10522746719 1970,委內瑞拉,7979090909 1970,南非,8575396972 1970,菲律賓,7684568805 1970,奧地利,7592693841 1970,丹麥,7248946880 1970,新西蘭,6485854791 1970,芬蘭,6224102195 1970,挪威,6163271598 1970,希臘,5335186016 1970,孟加拉,5274893913 1970,伊朗,5199134390 1970,尼日利亞,5186092258 1970,智利,4100000000 1970,哥倫比亞,4731152976 1970,韓國,4658190758 1970,巴基斯坦,4749265014 1970,剛果(金),4359404117 1970,葡萄牙,4193200404 1970,泰國,3760747471 1970,阿爾及利亞,3723648551 1970,以色列,3598500000 1970,秘魯,2501908062 1970,摩洛哥,3037150716 1970,愛爾蘭,2939329775 1970,馬來西亞,2916241996 1970,波多黎各,2691900000 1980,美國,8.433E+11 1980,英國,73233967692 1980,法國,62225478000 1980,中國,2.971E+11 1980,日本,44307342950 1980,加拿大,40461721692 1980,意大利,40385288344 1980,印度,37029883875 1980,澳大利亞,18577668271 1980,瑞典,15822585033 1980,巴西,15165569912 1980,土耳其,13995067817 1980,墨西哥,13040000000 1980,荷蘭,12276734172 1980,西班牙,12072126075 1980,比利時,11658722590 1980,瑞士,9522746719 1980,委內瑞拉,7779090909 1980,南非,7575396972 1980,菲律賓,6684568805 1980,奧地利,6592693841 1980,丹麥,6248946880 1980,新西蘭,5485854791 1980,芬蘭,5224102195 1980,挪威,5163271598 1980,希臘,4335186016 1980,孟加拉,4274893913 1980,伊朗,4199134390 1980,尼日利亞,4196092258 1980,智利,4110000000 1980,哥倫比亞,4031152976 1980,韓國,3958190758 1980,巴基斯坦,3749265014 1980,剛果(金),3359404117 1980,葡萄牙,3193200404 1980,泰國,2760747471 1980,阿爾及利亞,2723648551 1980,以色列,2598500000 1980,秘魯,2571908062 1980,摩洛哥,2037150716 1980,愛爾蘭,1939329775 1980,馬來西亞,1916241996 1980,波多黎各,1691900000 1990,美國,1.433E+12 1990,英國,73233967692 1990,法國,62225478000 1990,中國,8.342E+10 1990,日本,44307342950 1990,加拿大,40461721692 1990,意大利,40385288344 1990,印度,37029883875 1990,澳大利亞,18577668271 1990,瑞典,15822585033 1990,巴西,15165569912 1990,土耳其,13995067817 1990,墨西哥,13040000000 1990,荷蘭,12276734172 1990,西班牙,12072126075 1990,比利時,11658722590 1990,瑞士,9522746719 1990,委內瑞拉,7779090909 1990,南非,7575396972 1990,菲律賓,6684568805 1990,奧地利,6592693841 1990,丹麥,6248946880 1990,新西蘭,5485854791 1990,芬蘭,5224102195 1990,挪威,5163271598 1990,希臘,4335186016 1990,孟加拉,4274893913 1990,伊朗,4199134390 1990,尼日利亞,4196092258 1990,智利,4110000000 1990,哥倫比亞,4031152976 1990,韓國,3958190758 1990,巴基斯坦,3749265014 1990,剛果(金),3359404117 1990,葡萄牙,3193200404 1990,泰國,2760747471 1990,阿爾及利亞,2723648551 1990,以色列,2598500000 1990,秘魯,2571908062 1990,摩洛哥,2037150716 1990,愛爾蘭,1939329775 1990,馬來西亞,1916241996 1990,波多黎各,1691900000 2000,美國,1.433E+13 2000,英國,73233967692 2000,法國,62225478000 2000,中國,5.971E+12 2000,日本,44307342950 2000,加拿大,40461721692 2000,意大利,40385288344 2000,印度,37029883875 2000,澳大利亞,18577668271 2000,瑞典,15822585033 2000,巴西,15165569912 2000,土耳其,13995067817 2000,墨西哥,13040000000 2000,荷蘭,12276734172 2000,西班牙,12072126075 2000,比利時,11658722590 2000,瑞士,9522746719 2000,委內瑞拉,7779090909 2000,南非,7575396972 2000,菲律賓,6684568805 2000,奧地利,6592693841 2000,丹麥,6248946880 2000,新西蘭,5485854791 2000,芬蘭,5224102195 2000,挪威,5163271598 2000,希臘,4335186016 2000,孟加拉,4274893913 2000,伊朗,4199134390 2000,尼日利亞,4196092258 2000,智利,4110000000 2000,哥倫比亞,4031152976 2000,韓國,3958190758 2000,巴基斯坦,3749265014 2000,剛果(金),3359404117 2000,葡萄牙,3193200404 2000,泰國,2760747471 2000,阿爾及利亞,2723648551 2000,以色列,2598500000 2000,秘魯,2571908062 2000,摩洛哥,2037150716 2000,愛爾蘭,1939329775 2000,馬來西亞,1916241996 2000,波多黎各,1691900000 2010,美國,5.433E+14 2010,英國,73233967692 2010,法國,62225478000 2010,中國,1.971E+14 2010,日本,44307342950 2010,加拿大,40461721692 2010,意大利,40385288344 2010,印度,37029883875 2010,澳大利亞,18577668271 2010,瑞典,15822585033 2010,巴西,15165569912 2010,土耳其,13995067817 2010,墨西哥,13040000000 2010,荷蘭,12276734172 2010,西班牙,12072126075 2010,比利時,11658722590 2010,瑞士,9522746719 2010,委內瑞拉,7779090909 2010,南非,7575396972 2010,菲律賓,6684568805 2010,奧地利,6592693841 2010,丹麥,6248946880 2010,新西蘭,5485854791 2010,芬蘭,5224102195 2010,挪威,5163271598 2010,希臘,4335186016 2010,孟加拉,4274893913 2010,伊朗,4199134390 2010,尼日利亞,4196092258 2010,智利,4110000000 2010,哥倫比亞,4031152976 2010,韓國,3958190758 2010,巴基斯坦,3749265014 2010,剛果(金),3359404117 2010,葡萄牙,3193200404 2010,泰國,2760747471 2010,阿爾及利亞,2723648551 2010,以色列,2598500000 2010,秘魯,2571908062 2010,摩洛哥,2037150716 2010,愛爾蘭,1939329775 2010,馬來西亞,1916241996 2010,波多黎各,1691900000 2020,美國,5.433E+14 2020,英國,73233967692 2020,法國,62225478000 2020,中國,5.971E+14 2020,日本,44307342950 2020,加拿大,40461721692 2020,意大利,40385288344 2020,印度,37029883875 2020,澳大利亞,18577668271 2020,瑞典,15822585033 2020,巴西,15165569912 2020,土耳其,13995067817 2020,墨西哥,13040000000 2020,荷蘭,12276734172 2020,西班牙,12072126075 2020,比利時,11658722590 2020,瑞士,9522746719 2020,委內瑞拉,7779090909 2020,南非,7575396972 2020,菲律賓,6684568805 2020,奧地利,6592693841 2020,丹麥,6248946880 2020,新西蘭,5485854791 2020,芬蘭,5224102195 2020,挪威,5163271598 2020,希臘,4335186016 2020,孟加拉,4274893913 2020,伊朗,4199134390 2020,尼日利亞,4196092258 2020,智利,4110000000 2020,哥倫比亞,4031152976 2020,韓國,3958190758 2020,巴基斯坦,3749265014 2020,剛果(金),3359404117 2020,葡萄牙,3193200404 2020,泰國,2760747471 2020,阿爾及利亞,2723648551 2020,以色列,2598500000 2020,秘魯,2571908062 2020,摩洛哥,2037150716 2020,愛爾蘭,1939329775 2020,馬來西亞,1916241996 2020,波多黎各,1691900000
到了這里,關于Python可視化學習——使用JSON進行數據轉換、pyecharts模塊調用以及可視化案例的介紹(可視化案例數據暫無),柱狀圖及動態(tài)柱狀圖的構建的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!