国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化

這篇具有很好參考價值的文章主要介紹了Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

版本說明

當(dāng)前版本號[20230729]。

版本 修改說明
20230729 初版

目錄

知識總覽圖

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化

效果一:2020年印美日新冠累計確診人數(shù)

? 2020年是新冠疫情爆發(fā)的一年, 隨著疫情的爆發(fā), 國內(nèi)外確診人數(shù)成了大家關(guān)心的熱點(diǎn), 相信大家都有看過類似的疫情報告. 本案例對印度美國日本三個國家確診人數(shù)的進(jìn)行了可視化處理, 形成了可視化的疫情確診人數(shù)報告.

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

效果二:全國疫情地圖可視化

效果三:動態(tài)GDP增長圖

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

數(shù)據(jù)來源

本案例數(shù)據(jù)全部來自 <<百度疫情實時大數(shù)據(jù)報告>>,及公開的全球各國GDP數(shù)據(jù)

使用的技術(shù)

? Echarts 是個由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計,得到了眾多開發(fā)者的認(rèn)可. 而 Python 是門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理. 當(dāng)數(shù)據(jù)分析遇上數(shù)據(jù)可視化時pyecharts 誕生了.

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

json數(shù)據(jù)格式

什么是json

  • JSON是一種輕量級的數(shù)據(jù)交互格式。可以按照J(rèn)SON指定的格式去組織和封裝數(shù)據(jù)
  • JSON本質(zhì)上是一個帶有特定格式字符串

主要功能:json就是一種在各個編程語言中流通的數(shù)據(jù)格式,負(fù)責(zé)不同編程語言中的數(shù)據(jù)傳遞和交互. 類似于:

  • 國際通用語言-英語
  • 中國56個民族不同地區(qū)的通用語言-普通話

json有什么用

? 各種編程語言存儲數(shù)據(jù)的容器不盡相同,在Python中有字典dict這樣的數(shù)據(jù)類型, 而其它語言可能沒有對應(yīng)的字典。

? 為了讓不同的語言都能夠相互通用的互相傳遞數(shù)據(jù),JSON就是一種非常良好的中轉(zhuǎn)數(shù)據(jù)格式。如下圖,以Python和C語言互傳數(shù)據(jù)為例:

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

json格式數(shù)據(jù)轉(zhuǎn)化

json格式的數(shù)據(jù)要求很嚴(yán)格, 下面我們看一下他的要求

# json數(shù)據(jù)的格式可以是: 
{"name":"admin","age":18} 

# 也可以是:  
[{"name":"admin","age":18},{"name":"root","age":16},{"name":"張三","age":20}] 

Python數(shù)據(jù)和Json數(shù)據(jù)的相互轉(zhuǎn)化

# 導(dǎo)入json模塊
import json

# 準(zhǔn)備符合格式j(luò)son格式要求的python數(shù)據(jù)
data = [{"name": "老王", "age": 16}, {"name": "張三", "age": 20}]

# 通過 json.dumps(data) 方法把python數(shù)據(jù)轉(zhuǎn)化為了 json數(shù)據(jù)
json_data = json.dumps(data, ensure_ascii=False)
print(type(json_data))
print(f"python數(shù)據(jù)轉(zhuǎn)化為了json數(shù)據(jù)的結(jié)果:{json_data}")

# 通過 json.loads(data) 方法把json數(shù)據(jù)轉(zhuǎn)化為了 python數(shù)據(jù) 
python_data = json.loads(json_data)
print(type(python_data))
print(f"json數(shù)據(jù)轉(zhuǎn)化為了python數(shù)據(jù)的結(jié)果:{python_data}")

結(jié)果如下:(可見json和python里面對元素要求的格式也不一樣,一個雙引號一個單引號)

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

注:

通過 json.dumps(data) 方法把python數(shù)據(jù)轉(zhuǎn)化為了 json數(shù)據(jù)

data = json.dumps(data)

如果有中文可以帶上:ensure_ascii=False參數(shù)來確保中文正常轉(zhuǎn)換

通過 json.loads(data) 方法把josn數(shù)據(jù)轉(zhuǎn)化為了 python列表或字典

data = json.loads(data)

pyecharts模塊介紹

? 如果想要做出數(shù)據(jù)可視化效果圖, 可以借助pyecharts模塊來完成

概況

? Echarts 是個由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計,得到了眾多開發(fā)者的認(rèn)可. 而 Python 是門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理.

? 當(dāng)數(shù)據(jù)分析遇上數(shù)據(jù)可視化時pyecharts 誕生了.

如何查看官方示例

打開官方畫廊:

https://gallery.pyecharts.org/#/README

使用在前面學(xué)過的pip命令即可快速安裝PyEcharts模塊

pip install pyecharts

pyecharts快速入門

基礎(chǔ)折線圖

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

示例代碼:

from pyecharts.charts import Line
line = Line()
line.add_xaxis(["炸雞", "薯條", "漢堡"])
line.add_yaxis("價格", [45, 33, 23])
line.render()

生成圖表:

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

pyecharts有哪些配置選項

lpyecharts模塊中有很多的配置選項, 常用到2個類別的選項:

  • 全局配置選項
  • 系列配置選項
set_global_opts方法

? 這里全局配置選項可以通過set_global_opts方法來進(jìn)行配置, 相應(yīng)的選項和選項的功能如下:

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

? 全局配置項能做什么?

  • 配置圖表的標(biāo)題

  • 配置圖例

  • 配置鼠標(biāo)移動效果

  • 配置工具欄

  • 等整體配置項

    ? 系列配置項,我們在后面構(gòu)建案例時講解

數(shù)據(jù)處理

原始數(shù)據(jù)格式:

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

導(dǎo)入模塊:

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

再根據(jù)層級,一步步地去獲?。?/p>

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

對數(shù)據(jù)進(jìn)行整理, 讓數(shù)據(jù)符合json格式:

import json
f_us = open("F:/美國.txt", "r", encoding="UTF-8")//打開文件
us_data = f_us.read()//全部讀出來

# 把不符合json數(shù)據(jù)格式的 "jsonp_1629344292311_69436(" 去掉 ,再賦值回us_data
us_data = us_data.replace("jsonp_1629344292311_69436(", "")

# 把不符合json數(shù)據(jù)格式的 ");" 去掉,從后往前數(shù)去掉最后兩個字節(jié)
us_data = us_data[:-2]

# 數(shù)據(jù)格式符合json格式后,對數(shù)據(jù)進(jìn)行轉(zhuǎn)化成字典
us_dict = json.loads(us_data)

# 獲取美國的疫情數(shù)據(jù) 
trend_data = us_dict['data'][0]['trend']

# x1_data存放2020年日期數(shù)據(jù) 
x_data = trend_data['updateDate'][:314]

# y1_data存放2020年人數(shù)數(shù)據(jù) 
y_data = trend_data['list'][0]['data'][:314]

print(x_data)
print(y_data)

創(chuàng)建折線圖

導(dǎo)入模塊

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

折線圖相關(guān)配置項

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

創(chuàng)建折線圖

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

  • 這里的Line()是構(gòu)建類對象,我們先不必理解是什么意思,后續(xù)在Python高階中進(jìn)行詳細(xì)講解。
  • 目前我們簡單的會用即可

添加數(shù)據(jù)

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

.add_yaxis相關(guān)配置選項

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記

set_global_opts全局配置選項

.set_global_opts(
	# 設(shè)置圖標(biāo)題和位置 
	title_opts=opts.TitleOpts(title="2020年 印????美????日???? 累計確診人數(shù)對比圖",pos_left="center"), 
	# x軸配置項 
	xaxis_opts=opts.AxisOpts(name=“時間”),    # 軸標(biāo)題 
	# y軸配置項 
	yaxis_opts=opts.AxisOpts(name=“累計確診人數(shù)”),    # 軸標(biāo)題 
	# 圖例配置項 
	legend_opts=opts.LegendOpts(pos_left=70%),    # 圖例的位置 
)

示例代碼:

import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts, LegendOpts, ToolboxOpts, AxisPointerOpts

f_us = open("F:/美國.txt", "r", encoding="UTF-8")
f_jp = open("F:/日本.txt", "r", encoding="UTF-8")
f_in = open("F:/印度.txt", "r", encoding="UTF-8")

us_data = f_us.read()
jp_data = f_jp.read()
in_data = f_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]

us_dict = json.loads(us_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)

trendus_data = us_dict['data'][0]['trend']
trendjp_data = jp_dict['data'][0]['trend']
trendin_data = in_dict['data'][0]['trend']

us_x_data = trendus_data['updateDate'][:314]
jp_x_data = trendjp_data['updateDate'][:314]
in_x_data = trendin_data['updateDate'][:314]

us_y_data = trendus_data['list'][0]['data'][:314]
jp_y_data = trendjp_data['list'][0]['data'][:314]
in_y_data = trendin_data['list'][0]['data'][:314]

epidemic_line = Line()  //構(gòu)建折線圖對象
epidemic_line.add_xaxis(us_x_data)  //x軸上的數(shù)據(jù)是共用的,所以使用一個國家的數(shù)據(jù)即可
epidemic_line.add_yaxis("美國確診人數(shù)", us_y_data, label_opts=LabelOpts(is_show=False))
epidemic_line.add_yaxis("日本確診人數(shù)", jp_y_data, label_opts=LabelOpts(is_show=False))
epidemic_line.add_yaxis("印度確診人數(shù)", in_y_data, label_opts=LabelOpts(is_show=False))
//label_opts=LabelOpts(is_show=False) 是指不顯示標(biāo)簽上的數(shù)字,看起來就不會那么雜

epidemic_line.set_global_opts(
    title_opts=TitleOpts(title="2020年美日印確診人數(shù)對比折線圖", pos_left="center", pos_bottom="1%"),
    legend_opts=LegendOpts(is_show=True),
    toolbox_opts=ToolboxOpts(is_show=True),
    axispointer_opts=AxisPointerOpts()
)

#調(diào)用方法,生成圖表
epidemic_line.render()

#關(guān)閉文件對象
f_us.close()
f_jp.close()
f_in.close()

折現(xiàn)圖以下:

Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化,Python學(xué)習(xí)筆記(自用),python,信息可視化,開發(fā)語言,pytest,筆記文章來源地址http://www.zghlxwxcb.cn/news/detail-617309.html

到了這里,關(guān)于Python-Python基礎(chǔ)綜合案例:數(shù)據(jù)可視化 - 折線圖可視化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包