pyecharts的使用
pyecharts 是一個用於生成 Echarts 圖表的類庫。
echarts 是百度開源的一個數據可視化 JS 庫,主要用於數據可視化。pyecharts 是一個用於生成 Echarts 圖表的類庫。實際上就是 Echarts 與 Python 的對接。
使用 pyecharts 可以生成獨立的網頁,也可以在 flask , Django 中集成使用。
pyecharts包含的圖表
Bar(柱狀圖/條形圖)
Bar3D(3D 柱狀圖)
Boxplot(箱形圖)
EffectScatter(帶有漣漪特效動畫的散點圖)
Funnel(漏斗圖)
Gauge(儀表盤)
Geo(地理座標系)
Graph(關係圖)
HeatMap(熱力圖)
Kline(K線圖)
Line(折線/面積圖)
Line3D(3D 折線圖)
Liquid(水球圖)
Map(地圖)
Parallel(平行座標系)
Pie(餅圖)
Polar(極座標系)
Radar(雷達圖)
Sankey(桑基圖)
Scatter(散點圖)
Scatter3D(3D 散點圖)
ThemeRiver(主題河流圖)
WordCloud(詞雲圖)
1. 柱狀圖
from pyecharts.charts import Bar
from pyecharts import options
# 1.準備數據
cate = ['湖北', '四川', '重慶', '河北', '雲南']
data1 = [34500, 3000, 3218, 2890, 50023]
data2 = [1200, 100, 300, 130, 1004]
# 2. 創建圖表對象
bar = Bar()
# 3. 關聯數據
bar.add_xaxis(cate) # 確定x軸上要顯示的內容
bar.add_yaxis('確診人數', data1)
bar.add_yaxis('死亡人數', data2)
# 4. 設置圖表
# 全局設置
bar.set_global_opts(
# 設置標題信息
title_opts=options.TitleOpts(title='全國疫情數據統計', subtitle='確診人數和死亡人數'),
# 顯示工具箱
toolbox_opts=options.ToolboxOpts())
# 系列設置
bar.set_series_opts(
# 設置是否顯示數值
label_opts=options.LabelOpts(is_show=False),
# 添加標記點
markpoint_opts=options.MarkPointOpts(data=[
options.MarkPointItem(type_='min', name='最小值'),
options.MarkPointItem(type_='max', name='最大值')
]))
# 5. 數據渲染 - 生成圖表
bar.render('files/柱狀圖.html')
2. 餅狀圖
from pyecharts.charts import Pie
from pyecharts import options
# 1. 準備數據
data = [('蘋果', 153), ('三星', 56), ('華爲', 200), ('Oppo', 89)]
# 2. 創建圖標對象
pie = Pie()
# 3. 關聯數據
pie.add(
# 設置系列名稱
series_name='手機銷量',
# 設置需要展示的數據
data_pair=data,
# 設置圓環空心部分和數據顯示部分的比例
radius=['30%', '70%'],
# 設置餅是不規則的
rosetype='radius'
)
# 設置數據顯示的格式
pie.set_series_opts(label_opts=options.LabelOpts(formatter='{b}:{d}%'))
# pie.set_series_opts(label_opts=options.LabelOpts(formatter='{b}的佔比:百分之{d}'))
# 設置圖表的標題
pie.set_global_opts(title_opts=options.TitleOpts(title='手機銷量'))
# 5. 渲染數據
pie.render('files/餅狀圖.html')
3. 折線圖
from pyecharts.charts import Line
from pyecharts import options
# 1.準備數據
cate = ['湖北', '四川', '重慶', '河北', '雲南']
data1 = [3400, 3000, 3218, 2890, 5023]
data2 = [600, 100, 300, 130, 504]
# 2.創建圖表
line = Line()
# 3. 關聯數據
line.add_xaxis(cate)
# line.add_yaxis('確診人數', data1,
# markline_opts=options.MarkLineOpts(data=[
# options.MarkPointItem(type_='average')
# ]))
line.add_yaxis('確定人數', data1,
# 設置折線是否平滑
is_smooth=True)
line.add_yaxis('死亡人數', data2, markpoint_opts=options.MarkPointOpts(
data=[options.MarkPointItem(type_='min', name='最小值')]
))
line.set_series_opts(markline_opts=options.MarkLineOpts(
# 設置平均值的標記線
data=[options.MarkPointItem(type_='average', name='平均值'),
# 設置最大值的標記線
options.MarkPointItem(type_='max', name='最大值')]
))
line.set_global_opts(title_opts=options.TitleOpts(title='主標題', subtitle='副標題'))
# 5. 渲染數據
line.render('files/折線圖.html')
4. 地圖
from pyecharts.charts import Map
from pyecharts import options
# 1. 準備數據
data = [('湖北', 1500), ('四川', 340), ('西藏', 34), ('黑龍江', 123)]
# 2.創建地圖對象
map1 = Map()
# 3. 關聯數據
map1.add('疫情數據', data, 'china')
# 4. 設置
map1.set_global_opts(
# 設置顏色塊標記範圍
visualmap_opts=options.VisualMapOpts(max_=2000, is_piecewise=True),
# 隱藏頂部的數據導航顯示
legend_opts=options.LegendOpts(is_show=False),
title_opts=options.TitleOpts(title='大標題', subtitle='副標題')
)
# 5. 渲染數據
map1.render('files/地圖.html')
5. 組合圖
from pyecharts.charts import Grid
grid = Grid()
grid.add(bar, grid_opts=options.GridOpts(pos_bottom='60%'))
grid.add(line, grid_opts=options.GridOpts(pos_top='60%'))
grid.render('files/組合.html')
最近在b站上發現了一個很好的python基礎教學視頻感興趣的可以看看:https://www.bilibili.com/video/BV1jE411x7ss