python pyecharts庫的用法大全
什么是pyecharts?
pyecharts 是一個用于生成 Echarts 圖表的類庫。
echarts 是百度開源的一個數(shù)據(jù)可視化 JS 庫,主要用于數(shù)據(jù)可視化。pyecharts 是一個用于生成 Echarts 圖表的類庫。實際上就是 Echarts 與 Python 的對接。
使用 pyecharts 可以生成獨立的網(wǎng)頁,也可以在 flask , Django 中集成使用。
pyecharts包含的圖表#
Bar(柱狀圖/條形圖)
Bar3D(3D 柱狀圖)
Boxplot(箱形圖)
EffectScatter(帶有漣漪特效動畫的散點圖)
Funnel(漏斗圖)
Gauge(儀表盤)
Geo(地理坐標系)
Graph(關(guān)系圖)
HeatMap(熱力圖)
Kline(K線圖)
Line(折線/面積圖)
Line3D(3D 折線圖)
Liquid(水球圖)
Map(地圖)
Parallel(平行坐標系)
Pie(餅圖)
Polar(極坐標系)
Radar(雷達圖)
Sankey(?;鶊D)
Scatter(散點圖)
Scatter3D(3D 散點圖)
ThemeRiver(主題河流圖)
WordCloud(詞云圖)
用戶自定義
Grid 類:并行顯示多張圖
Overlap 類:結(jié)合不同類型圖表疊加畫在同張圖上
Page 類:同一網(wǎng)頁按順序展示多圖
Timeline 類:提供時間線輪播多張圖
pyecharts安裝
pip install pyecharts
下面給大家介紹python pyecharts庫的使用,一起看看!
現(xiàn)在下載的庫都是1.x版本的,使用方法和以前有很大區(qū)別
加載
from pyecharts.charts import Line, Bar, Funnel from pyecharts.faker import Faker import pyecharts.options as opts from pyecharts.commons.utils import JsCode
折線圖的繪制
最簡單的版本
line1 = (
Line()
.add_xaxis(['2015', '2016', '2017', '2018', '2019'])
.add_yaxis('進入黨政機關(guān)及事業(yè)單位的比例%', [30.23, 15.06, 17.6, 16.56, 18.51])
)
line1.render_notebook()

高級版本
多條線,圖片大小,設(shè)置標題、圖例及其位置,缺失數(shù)據(jù)的繪制,給圖例也加上顏色進行區(qū)分
# https://blog.csdn.net/seakingx/article/details/105531515 繪制百分數(shù)
# https://www.freesion.com/article/2819552517/ 圖例添加顏色,color參數(shù),非linestyle_opts的子參數(shù)
line1 = (
Line(init_opts=opts.InitOpts(width="600px", height="400px"))
.add_xaxis(['2015', '2016', '2017', '2018', '2019'])
.add_yaxis('進入黨政機關(guān)及事業(yè)單位的比例%', [30.23, 15.06, 17.6, 16.56, 18.51],
label_opts=opts.LabelOpts(formatter=JsCode("function (params) {return params.value[1] + '%'}"))
)
.add_yaxis('簽約國企、私企和三資企業(yè)比例%', [69.78, 84.78, None, 82.67, 81.33],
label_opts=opts.LabelOpts(formatter=JsCode("function (params) {return params.value[1] + '%'}")),
#linestyle_opts=opts.LineStyleOpts(color='yellow', width=2)
#linestyle_opts=opts.LineStyleOpts(width=2),
color='blue'
)
.set_global_opts(title_opts=opts.TitleOpts(title='南開大學(xué)本科生的就業(yè)去向及比例',
pos_right='50%'
),
legend_opts=opts.LegendOpts(pos_right='10%',
pos_top='10%',
orient='vertical')
)
#.render('南開本科.html')
)
line1.render_notebook()

render()與render_notebook的報錯和無反應(yīng):
line1有render代碼時,就不能在代碼里添加render_notebook了,否則報錯: AttributeError: ‘str' object has no attribute ‘render_notebook'
條形圖和折線圖的結(jié)合
最簡單的形式
x = Faker.choose()
scatter1 = (
Bar()
.add_xaxis(x)
.add_yaxis("商家A", Faker.values(), yaxis_index=0)
# 設(shè)置副坐標軸時,必須加這個命令,這個命令并不能決定主副坐標軸
.extend_axis(yaxis=opts.AxisOpts(type_="value", name="商家A", position="left"))
.set_global_opts(yaxis_opts=opts.AxisOpts(type_="value", name="商家B", position="right"))
)
# 下面的圖里只能設(shè)置個index
scatter2 = (
Line()
.add_xaxis(x)
.add_yaxis("商家B", [v/1000 for v in Faker.values()], yaxis_index=1)
)
scatter1.overlap(scatter2)
scatter1.render_notebook()

副坐標軸的使用和坐標軸范圍、刻度大小的設(shè)置,添加坐標軸的標簽
# 繪制條形圖
bar=(
Bar()
.add_xaxis(['2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021'])
.add_yaxis('招錄職位數(shù)', [11729, 13475, 15659, 15583, 16144, 9657, 13549, 13172])
.add_yaxis('招錄人數(shù)', [19538, 22249, 27817, 27061, 28533, 14537, 24128, 25726])
# 設(shè)置副坐標軸
.extend_axis(yaxis=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 萬"),
interval=30,
max_=180,
min_=0) # 設(shè)置坐標軸的區(qū)間長度
)
#.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="歷年公務(wù)員考試數(shù)據(jù)", pos_right='45%'), # 設(shè)置標題及標題的位置
legend_opts=opts.LegendOpts(pos_right='10%', # 設(shè)置圖例的位置
#pos_top='10%',
orient='vertical'), # 不同圖例之間是豎著排放的
#max_=40000, 這里沒有這個lim參數(shù),在坐標軸里面可以設(shè)置
# 設(shè)置主坐標軸配置項
yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 人"),
max_=50000) # 設(shè)置坐標軸的范圍 lim
)
)
# 繪制折線圖(也可以不加括號)
line = Line().add_xaxis(['2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021']).add_yaxis("報名人數(shù)", [152, 140.9, 139.46, 148.63, 138, 137.93, 140, '-'],
yaxis_index=1, #如果不加該參數(shù),就沒有副坐標軸,這樣不同量級的數(shù)據(jù)就會出現(xiàn)問題
label_opts=opts.LabelOpts(formatter=JsCode("function (params) {return params.value[1] + '萬'}"))
)
# 兩個圖形疊加起來
bar.overlap(line)
bar.render("overlap_bar_line.html")
bar.render_notebook()

繪制漏斗圖
最簡單的繪制方法
# 主要是數(shù)據(jù)格式和其他的不一致
funnel = (
Funnel()
.add("商城漏斗", [ list(two_values) for two_values in zip(['召回', '粗排', '精排'], [100, 80, 10]) ])
.set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}次"))
.set_global_opts(title_opts=opts.TitleOpts(title="請求過濾的漏斗分析"))
)
funnel.render_notebook()
復(fù)雜點的繪制方法
# https://zhuanlan.zhihu.com/p/63976935 一些參考
funnel = (
Funnel(init_opts=opts.InitOpts(width="600px", height="400px")) #是寬和高,而不是像素
#Funnel()
.add("商城漏斗", [ list(two_values) sfor two_values in zip(['召回', '粗排', '精排'], [100, 80, 10]) ])
#.set_series_opts(label_opts=opts.LabelOpts(is_show=False),
#markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值"),]))
.set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}, e8g0ka8%")) # d是每個數(shù)值占總體的比重
# 百分比這里建議傳入一組新的y數(shù)據(jù)(用每個數(shù)據(jù)除以一個數(shù)值) https://zhuanlan.zhihu.com/p/63976935
.set_global_opts(title_opts=opts.TitleOpts(title="請求過濾的漏斗分析"),
#yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter='{data} {value}%')) #"{value} 人"
)
)
funnel.render_notebook()

到此這篇關(guān)于python pyecharts庫的用法大全的文章就介紹到這了,更多相關(guān)python pyecharts庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Anaconda中更新當前環(huán)境的Python版本詳細步驟
Anaconda是一個開源的Python發(fā)行版本,其包含了conda、Python等180多個科學(xué)包及其依賴項,下面這篇文章主要給大家介紹了關(guān)于Anaconda中更新當前環(huán)境的Python版本的詳細步驟,需要的朋友可以參考下2024-08-08
詳解超星腳本出現(xiàn)亂碼問題的解決方法(Python)
超星助手是一款為孩子們提供學(xué)習(xí)的軟件,支持用戶們后臺運行多開等,還可以簽到,查題等多功能,下面這篇文章主要給大家介紹了關(guān)于超星腳本出現(xiàn)亂碼問題的解決方法,需要的朋友可以參考下2022-05-05
pygame實現(xiàn)俄羅斯方塊游戲(對戰(zhàn)篇1)
這篇文章主要為大家詳細介紹了pygame實現(xiàn)俄羅斯方塊游戲的對戰(zhàn)篇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10
python使用wmi模塊獲取windows下硬盤信息的方法
這篇文章主要介紹了python使用wmi模塊獲取windows下硬盤信息的方法,涉及Python獲取系統(tǒng)硬件信息的相關(guān)技巧,需要的朋友可以參考下2015-05-05
Python實現(xiàn)隨機劃分圖片數(shù)據(jù)集的示例代碼
這篇文章主要為大家詳細介紹了如何通過Python實現(xiàn)隨機將圖片與標注文件劃分為訓(xùn)練集和測試集,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05
Python+selenium實現(xiàn)截圖圖片并保存截取的圖片
這篇文章介紹如何利用Selenium的方法進行截圖并保存截取的圖片,需要的朋友參考下本文2018-01-01

