溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么利用pyecharts實現數據可視化

發布時間:2021-07-10 14:15:40 來源:億速云 閱讀:288 作者:Leah 欄目:大數據
# Python中怎么利用pyecharts實現數據可視化

## 一、pyecharts概述

### 1.1 什么是pyecharts
pyecharts是一個基于Echarts的Python可視化庫,它允許開發者使用Python代碼生成Echarts風格的交互式圖表。Echarts是百度開源的一個優秀的數據可視化庫,而pyecharts則是Echarts的Python接口,使得Python開發者能夠更方便地創建各種精美的圖表。

### 1.2 pyecharts的特點
- **豐富的圖表類型**:支持折線圖、柱狀圖、散點圖、餅圖、雷達圖等30+種圖表
- **高度可定制化**:可以自定義顏色、標簽、提示框等幾乎所有圖表元素
- **交互性強**:支持縮放、拖拽、數據篩選等交互功能
- **多端適配**:生成的圖表可以在Jupyter Notebook、Web頁面等多種環境中展示
- **簡單易用**:通過簡潔的Python API即可創建復雜圖表

### 1.3 安裝pyecharts
安裝pyecharts非常簡單,使用pip命令即可:

```bash
pip install pyecharts

如果需要使用地圖相關功能,還需要安裝額外的地圖包:

pip install echarts-countries-pypkg  # 全球國家地圖
pip install echarts-china-provinces-pypkg  # 中國省級地圖
pip install echarts-china-cities-pypkg  # 中國市級地圖

二、pyecharts基礎使用

2.1 第一個pyecharts圖表

讓我們從一個簡單的柱狀圖開始:

from pyecharts.charts import Bar

# 創建柱狀圖對象
bar = Bar()

# 添加x軸數據
bar.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])

# 添加y軸數據
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])

# 渲染圖表到HTML文件
bar.render("my_first_chart.html")

這段代碼會生成一個簡單的柱狀圖,并保存為HTML文件。在瀏覽器中打開這個文件,你將看到一個交互式的柱狀圖。

2.2 圖表基本配置

pyecharts提供了豐富的配置選項,我們可以通過set_global_opts方法設置圖表的全局選項:

from pyecharts import options as opts

bar = Bar()
bar.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
bar.add_yaxis("商家B", [15, 6, 45, 20, 35, 66])

# 設置全局配置
bar.set_global_opts(
    title_opts=opts.TitleOpts(title="商品銷售情況", subtitle="2023年1月"),
    toolbox_opts=opts.ToolboxOpts(),  # 顯示工具箱
    legend_opts=opts.LegendOpts(pos_left="right"),  # 圖例位置
    xaxis_opts=opts.AxisOpts(name="商品"),  # x軸名稱
    yaxis_opts=opts.AxisOpts(name="銷量")  # y軸名稱
)

bar.render("bar_with_options.html")

2.3 圖表保存與展示

pyecharts支持多種展示方式:

  1. 保存為HTML文件
chart.render("output.html")
  1. 在Jupyter Notebook中直接顯示
chart.render_notebook()
  1. 生成圖片文件(需要安裝snapshot_selenium):
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot

make_snapshot(snapshot, chart.render(), "output.png")

三、常用圖表類型詳解

3.1 折線圖(Line)

折線圖適合展示數據隨時間或有序類別的變化趨勢:

from pyecharts.charts import Line

line = Line()
line.add_xaxis(["周一", "周二", "周三", "周四", "周五", "周六", "周日"])
line.add_yaxis("最高溫度", [11, 11, 15, 13, 12, 13, 10])
line.add_yaxis("最低溫度", [1, -2, 2, 5, 3, 2, 0])

line.set_global_opts(
    title_opts=opts.TitleOpts(title="一周溫度變化"),
    tooltip_opts=opts.TooltipOpts(trigger="axis"),
    yaxis_opts=opts.AxisOpts(
        name="溫度(℃)",
        splitline_opts=opts.SplitLineOpts(is_show=True)
    )
)

line.render("temperature_line.html")

3.2 柱狀圖(Bar)

柱狀圖適合比較不同類別間的數值大?。?/p>

bar = Bar()
bar.add_xaxis(["2017", "2018", "2019", "2020", "2021", "2022"])
bar.add_yaxis("產品A", [100, 200, 300, 400, 500, 600])
bar.add_yaxis("產品B", [200, 300, 400, 500, 600, 700])

bar.set_global_opts(
    title_opts=opts.TitleOpts(title="年度銷售對比"),
    datazoom_opts=[opts.DataZoomOpts()]  # 添加數據縮放
)

bar.render("sales_bar.html")

3.3 餅圖(Pie)

餅圖適合展示各部分占總體的比例:

from pyecharts.charts import Pie

pie = Pie()
pie.add(
    "",
    [("電子產品", 45), ("服裝", 30), ("食品", 25)],
    radius=["40%", "75%"],  # 設置環狀
    label_opts=opts.LabelOpts(formatter=": {c} ({d}%)")
)

pie.set_global_opts(
    title_opts=opts.TitleOpts(title="銷售占比"),
    legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%")
)

pie.render("sales_pie.html")

3.4 散點圖(Scatter)

散點圖適合展示兩個變量之間的關系:

from pyecharts.charts import Scatter

scatter = Scatter()
scatter.add_xaxis([10, 20, 30, 40, 50, 60])
scatter.add_yaxis("", [10, 20, 30, 40, 50, 60])

scatter.set_global_opts(
    title_opts=opts.TitleOpts(title="散點圖示例"),
    visualmap_opts=opts.VisualMapOpts(max_=60)
)

scatter.render("scatter_plot.html")

3.5 地圖(Map)

pyecharts支持多種地圖展示:

from pyecharts.charts import Map

data = [
    ("北京", 100), ("上海", 200), ("廣東", 300), 
    ("浙江", 150), ("江蘇", 180), ("四川", 120)
]

map_chart = Map()
map_chart.add("", data, "china")

map_chart.set_global_opts(
    title_opts=opts.TitleOpts(title="中國地圖示例"),
    visualmap_opts=opts.VisualMapOpts(max_=300)
)

map_chart.render("china_map.html")

四、高級功能與技巧

4.1 多圖表組合

pyecharts支持將多個圖表組合在一起展示:

from pyecharts.charts import Bar, Line, Grid

bar = (
    Bar()
    .add_xaxis(["周一", "周二", "周三", "周四", "周五", "周六", "周日"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90, 50])
    .add_yaxis("商家B", [15, 6, 45, 20, 35, 66, 30])
    .set_global_opts(title_opts=opts.TitleOpts(title="Grid-Bar"))
)

line = (
    Line()
    .add_xaxis(["周一", "周二", "周三", "周四", "周五", "周六", "周日"])
    .add_yaxis("平均溫度", [20, 22, 25, 18, 21, 23, 19])
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Grid-Line", pos_top="48%"),
        legend_opts=opts.LegendOpts(pos_top="48%")
    )
)

grid = Grid()
grid.add(bar, grid_opts=opts.GridOpts(pos_bottom="60%"))
grid.add(line, grid_opts=opts.GridOpts(pos_top="60%"))
grid.render("grid_example.html")

4.2 時間軸(Timeline)

時間軸可以展示數據隨時間的變化:

from pyecharts.charts import Timeline, Bar

tl = Timeline()
for year in range(2018, 2023):
    bar = (
        Bar()
        .add_xaxis(["產品A", "產品B", "產品C"])
        .add_yaxis("銷量", [year*10, year*15, year*8])
        .set_global_opts(title_opts=opts.TitleOpts(f"{year}年銷售情況"))
    )
    tl.add(bar, str(year))

tl.render("timeline_example.html")

4.3 3D圖表

pyecharts支持3D圖表展示:

from pyecharts.charts import Bar3D

data = [
    [0, 0, 5], [0, 1, 10], [0, 2, 15],
    [1, 0, 8], [1, 1, 12], [1, 2, 18],
    [2, 0, 6], [2, 1, 14], [2, 2, 20]
]

bar3d = Bar3D()
bar3d.add(
    "",
    data,
    xaxis3d_opts=opts.Axis3DOpts(type_="category", data=["Q1", "Q2", "Q3"]),
    yaxis3d_opts=opts.Axis3DOpts(type_="category", data=["2018", "2019", "2020"]),
    zaxis3d_opts=opts.Axis3DOpts(type_="value")
)

bar3d.set_global_opts(
    title_opts=opts.TitleOpts(title="3D柱狀圖示例"),
    visualmap_opts=opts.VisualMapOpts(max_=20)
)

bar3d.render("bar3d_example.html")

4.4 自定義主題

pyecharts支持多種內置主題,也可以自定義主題:

from pyecharts.globals import ThemeType

# 使用內置主題
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
bar.add_xaxis(["A", "B", "C", "D", "E"])
bar.add_yaxis("系列1", [10, 20, 30, 40, 50])
bar.render("dark_theme.html")

五、實際應用案例

5.1 銷售數據分析

假設我們有一份銷售數據,我們可以用多種圖表進行分析:

import pandas as pd
from pyecharts.charts import Bar, Pie, Line

# 模擬銷售數據
sales_data = {
    "月份": ["1月", "2月", "3月", "4月", "5月", "6月"],
    "產品A": [120, 132, 101, 134, 90, 230],
    "產品B": [220, 182, 191, 234, 290, 330],
    "產品C": [150, 232, 201, 154, 190, 330]
}

df = pd.DataFrame(sales_data)

# 1. 各產品總銷售額餅圖
pie = Pie()
pie.add(
    "",
    [("產品A", df["產品A"].sum()), 
     ("產品B", df["產品B"].sum()), 
     ("產品C", df["產品C"].sum())],
    radius=["40%", "75%"]
)
pie.set_global_opts(title_opts=opts.TitleOpts(title="產品銷售額占比"))
pie.render("sales_pie.html")

# 2. 各月銷售趨勢折線圖
line = Line()
line.add_xaxis(df["月份"].tolist())
line.add_yaxis("產品A", df["產品A"].tolist())
line.add_yaxis("產品B", df["產品B"].tolist())
line.add_yaxis("產品C", df["產品C"].tolist())
line.set_global_opts(title_opts=opts.TitleOpts(title="月度銷售趨勢"))
line.render("sales_line.html")

5.2 用戶行為分析

分析用戶訪問網站的時段分布:

from pyecharts.charts import Radar

# 模擬用戶訪問數據
hour_data = {
    "時段": ["0-3", "3-6", "6-9", "9-12", "12-15", "15-18", "18-21", "21-24"],
    "訪問量": [100, 50, 200, 400, 350, 300, 450, 250]
}

# 雷達圖展示
radar = Radar()
radar.add_schema(
    schema=[
        opts.RadarIndicatorItem(name="0-3", max_=500),
        opts.RadarIndicatorItem(name="3-6", max_=500),
        opts.RadarIndicatorItem(name="6-9", max_=500),
        opts.RadarIndicatorItem(name="9-12", max_=500),
        opts.RadarIndicatorItem(name="12-15", max_=500),
        opts.RadarIndicatorItem(name="15-18", max_=500),
        opts.RadarIndicatorItem(name="18-21", max_=500),
        opts.RadarIndicatorItem(name="21-24", max_=500)
    ]
)
radar.add("訪問量", [hour_data["訪問量"]])
radar.set_global_opts(title_opts=opts.TitleOpts(title="用戶訪問時段分布"))
radar.render("user_radar.html")

六、總結

pyecharts作為Python中強大的數據可視化工具,具有以下優勢:

  1. 豐富的圖表類型:滿足各種數據展示需求
  2. 高度可定制:可以調整幾乎所有圖表元素
  3. 交互性強:支持多種交互操作
  4. 易于使用:Pythonic的API設計
  5. 良好的兼容性:支持多種輸出格式和環境

在實際應用中,我們可以根據數據類型和分析目的選擇合適的圖表類型:

  • 趨勢分析:折線圖、面積圖
  • 對比分析:柱狀圖、條形圖
  • 占比分析:餅圖、環形圖
  • 分布分析:散點圖、箱線圖
  • 關系分析:關系圖、?;鶊D
  • 地理分析:地圖、熱力圖

通過本文的介紹,相信讀者已經掌握了pyecharts的基本用法和一些高級技巧。在實際項目中,可以結合具體業務需求,靈活運用pyecharts的各種功能,創建出既美觀又實用的數據可視化作品。

七、資源推薦

  1. 官方文檔https://pyecharts.org/
  2. GitHub倉庫https://github.com/pyecharts/pyecharts
  3. 示例庫https://gallery.pyecharts.org/
  4. Echarts官方文檔https://echarts.apache.org/

希望本文能幫助您更好地利用pyecharts進行數據可視化,讓數據講述更生動的故事! “`

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女