📊 本文特色:從零開始掌握日歷圖和箱線圖可視化技巧,包含多個完整實例、核心配置項解析和實用場景指南,助您快速構建專業數據可視化圖表。pyecharts源碼
目錄
- 什么是日歷圖和箱線圖?
- 📅 日歷圖(Calendar)
- 📊 箱線圖(Boxplot)
- 環境準備
- 📋 基礎依賴
- 🔧 安裝步驟
- 基礎日歷圖實現
- 代碼詳解
- 📌 日歷圖關鍵點總結
- 更多圖表實現
- 圖表2:Calendar_heatmap(高級日歷圖)
- 代碼詳解
- 📌 Calendar_heatmap關鍵點總結
- 圖表2與圖表1的對比
- 圖表3:BoxPlot-基本示例(基礎箱線圖)
- 代碼詳解
- 📌 箱線圖關鍵點總結
- 箱線圖核心參數解釋
- 圖表4:Boxplot & Scatter 組合圖表(高級箱線圖)
- 代碼詳解
- 📌 組合圖表關鍵點總結
- 組合圖表的優勢
- 圖表5:多類別箱線圖(自定義提示框)
- 代碼詳解
- 📌 多類別箱線圖關鍵點總結
- 自定義提示框的優勢
- 常見問題解答
- ? 日歷圖數據格式有什么要求?
- ? 如何更改日歷圖的顏色主題?
- ? 日歷圖支持哪些交互功能?
- 總結與展望
- 核心收獲
- 實用建議
- 進階方向
日歷圖和箱線圖是兩種非常實用的數據可視化圖表類型,它們分別適用于不同的數據展示場景。本教程將從基礎到進階,幫助您系統掌握這兩種圖表的使用方法。
什么是日歷圖和箱線圖?
📅 日歷圖(Calendar)
日歷圖以日歷的形式展示數據隨時間的變化,通過顏色深淺直觀呈現數值大小,非常適合展示全年或長時間范圍內的趨勢變化。
核心優勢:
- 時間維度清晰,直觀展示數據在全年的分布
- 色彩漸變效果突出異常值和趨勢模式
- 適合展示步數、銷售額、訪問量等日常記錄數據
典型應用場景:
- 健康數據跟蹤(步數、心率等)
- 業務銷售數據分析
- 網站訪問量統計
- 氣象數據可視化
📊 箱線圖(Boxplot)
箱線圖通過顯示一組數據的最小值、第一四分位數、中位數、第三四分位數和最大值,直觀地展示數據分布特征和異常值。
核心優勢:
- 有效識別數據集中的異常值
- 比較多組數據的分布特征
- 不受樣本量影響的統計可視化
- 清晰展示數據的離散程度
典型應用場景:
- 質量控制和過程監控
- 實驗數據結果分析
- 多組數據對比分析
- 金融風險評估
環境準備
日歷圖和箱線圖開發需要以下環境支持,請確保系統已正確配置:
📋 基礎依賴
- Python 3.6+(推薦3.8+版本)
- pyecharts 1.9.0+(本教程基于最新版開發)
🔧 安裝步驟
# 創建并激活虛擬環境(推薦)
python -m venv venv
# Windows激活虛擬環境
venv\Scripts\activate
# macOS/Linux激活虛擬環境
# source venv/bin/activate# 安裝依賴包
pip install pyecharts==2.0.3# 驗證安裝
python -c "import pyecharts; print('pyecharts版本:', pyecharts.__version__)"
💡 提示:使用虛擬環境可以避免包版本沖突,是Python項目開發的最佳實踐。如果不需要虛擬環境,可以直接執行
pip install pyecharts
命令。
基礎日歷圖實現
下面是一個基礎日歷圖的實現代碼,展示了2017年全年的微信步數情況:
import datetime # 導入日期時間處理模塊
import random # 導入隨機數生成模塊from pyecharts import options as opts # 導入pyecharts配置選項
from pyecharts.charts import Calendar # 導入日歷圖圖表類型begin = datetime.date(2017, 1, 1) # 設置開始日期為2017年1月1日
end = datetime.date(2017, 12, 31) # 設置結束日期為2017年12月31日
# 生成2017年全年每一天的數據,數據格式為[日期字符串, 隨機數值]
data = [[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]for i in range((end - begin).days + 1)
]# 創建日歷圖實例并配置
c = (Calendar() # 初始化日歷圖# 添加數據,設置日歷范圍為2017年.add("", data, calendar_opts=opts.CalendarOpts(range_="2017")).set_global_opts(title_opts=opts.TitleOpts(title="Calendar-2017年微信步數情況"), # 設置圖表標題visualmap_opts=opts.VisualMapOpts(max_=20000, # 視覺映射最大值min_=500, # 視覺映射最小值orient="horizontal", # 水平方向顯示is_piecewise=True, # 分段顯示pos_top="230px", # 視覺映射組件頂部位置pos_left="100px", # 視覺映射組件左側位置),)#.render("calendar_base.html") # 渲染到HTML文件(可選)
)
# 在Jupyter Notebook中渲染圖表
c.render_notebook()
代碼詳解
-
導入模塊:
datetime
:用于處理日期和時間random
:用于生成隨機數據pyecharts.options
:用于配置圖表選項pyecharts.charts.Calendar
:用于創建日歷圖
-
數據準備:
- 設置數據的開始和結束日期(2017年全年)
- 使用列表推導式生成全年每一天的數據,格式為[日期字符串, 數值]
- 這里使用
random.randint(1000, 25000)
模擬每日微信步數
-
創建圖表:
Calendar()
:創建日歷圖實例.add("", data, calendar_opts=opts.CalendarOpts(range_="2017"))
:添加數據并設置日歷范圍.set_global_opts()
:設置全局選項title_opts
:設置圖表標題visualmap_opts
:配置視覺映射,控制日歷中顏色深淺對應的數值范圍
-
渲染展示:
render_notebook()
:在Jupyter Notebook中顯示圖表- 如果需要保存為HTML文件,可以取消注釋
.render("calendar_base.html")
📌 日歷圖關鍵點總結
- 數據格式必須是
[日期字符串, 數值]
的列表形式 CalendarOpts(range_)
參數用于指定日歷的年份范圍- 視覺映射組件(
VisualMapOpts
)控制顏色與數值的對應關系 - 適合展示全年或特定時間段內的數據分布情況
更多圖表實現
圖表2:Calendar_heatmap(高級日歷圖)
下面是一個高級日歷圖的實現代碼,展示了2017年全年步數情況的熱圖效果:
import random # 導入隨機數生成模塊
import datetime # 導入日期時間處理模塊import pyecharts.options as opts # 導入pyecharts配置選項
from pyecharts.charts import Calendar # 導入日歷圖圖表類型begin = datetime.date(2017, 1, 1) # 設置開始日期為2017年1月1日
end = datetime.date(2017, 12, 31) # 設置結束日期為2017年12月31日
# 生成2017年全年每一天的數據,數據格式為[日期字符串, 隨機數值]
data = [[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]for i in range((end - begin).days + 1)
](Calendar() # 初始化日歷圖.add(series_name="", # 系列名稱為空yaxis_data=data, # 設置Y軸數據calendar_opts=opts.CalendarOpts(pos_top="120", # 日歷圖距離頂部的距離pos_left="30", # 日歷圖距離左側的距離pos_right="30", # 日歷圖距離右側的距離range_="2017", # 日歷的年份范圍yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False), # 不顯示年份標簽),).set_global_opts(title_opts=opts.TitleOpts(pos_top="30", pos_left="center", title="2017年步數情況"), # 設置標題位置和內容visualmap_opts=opts.VisualMapOpts(max_=20000, # 視覺映射最大值min_=500, # 視覺映射最小值orient="horizontal", # 水平方向顯示is_piecewise=False # 連續顯示,非分段),)#.render("calendar_heatmap.html") # 渲染到HTML文件(可選).render_notebook() # 在Jupyter Notebook中渲染
)
代碼詳解
-
數據準備:
- 與基礎日歷圖相同,使用
datetime
和random
模塊生成2017年全年的數據 - 數據格式保持為
[日期字符串, 數值]
的列表形式
- 與基礎日歷圖相同,使用
-
布局優化:
- 通過
pos_top
、pos_left
和pos_right
參數調整日歷圖在容器中的位置 - 這些參數可以使圖表在不同尺寸的顯示區域中更好地布局
- 通過
-
視覺效果優化:
- 設置
yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False)
隱藏年份標簽 - 這可以使日歷圖更加簡潔,專注于數據本身
- 設置
-
顏色映射調整:
- 設置
is_piecewise=False
使顏色映射變為連續漸變 - 連續漸變比分段顯示更加平滑,適合展示熱圖效果
- 設置
📌 Calendar_heatmap關鍵點總結
- 可以通過
pos_top
、pos_left
和pos_right
參數精確控制圖表位置 is_show=False
可以隱藏不需要的標簽,使圖表更加簡潔is_piecewise=False
啟用連續顏色漸變,適合熱圖展示- 這種配置更適合創建專業的數據分析儀表盤
圖表2與圖表1的對比
特性 | 基礎日歷圖(圖表1) | 高級日歷圖(圖表2) |
---|---|---|
標題位置 | 默認位置 | 頂部居中(pos_top=“30”, pos_left=“center”) |
日歷位置 | 默認位置 | 自定義邊距(pos_top=“120”, pos_left=“30”, pos_right=“30”) |
年份標簽 | 顯示 | 隱藏(is_show=False) |
顏色映射 | 分段顯示(is_piecewise=True) | 連續漸變(is_piecewise=False) |
適用場景 | 基礎數據展示 | 專業儀表盤、報告 |
圖表3:BoxPlot-基本示例(基礎箱線圖)
下面是一個基礎箱線圖的實現代碼,展示了兩組數據的分布情況:
from pyecharts import options as opts # 導入pyecharts配置選項
from pyecharts.charts import Boxplot # 導入箱線圖圖表類型# 準備數據,v1和v2分別代表兩組不同的數據系列
v1 = [[850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980], # 第一組數據[960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790], # 第二組數據
]
v2 = [[890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920], # 第三組數據[890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870], # 第四組數據
]# 創建箱線圖實例
c = Boxplot()
c.add_xaxis(["expr1", "expr2"]) # 設置X軸數據
c.add_yaxis("A", c.prepare_data(v1)) # 添加Y軸數據系列A,注意需要使用prepare_data處理數據
c.add_yaxis("B", c.prepare_data(v2)) # 添加Y軸數據系列B,同樣需要使用prepare_data處理數據
c.set_global_opts(title_opts=opts.TitleOpts(title="BoxPlot-基本示例")) # 設置圖表標題
#c.render("boxplot_base.html") # 渲染到HTML文件(可選)
c.render_notebook() # 在Jupyter Notebook中渲染
代碼詳解
-
導入模塊:
pyecharts.options
:用于配置圖表選項pyecharts.charts.Boxplot
:用于創建箱線圖
-
數據準備:
- 準備了兩組數據
v1
和v2
,每組數據又包含兩個子組 - 這種嵌套列表的形式是箱線圖的數據要求格式
- 準備了兩組數據
-
數據預處理:
- 注意箱線圖需要使用
prepare_data()
方法預處理數據 - 這是因為箱線圖需要計算每個數據組的最小值、第一四分位數、中位數、第三四分位數和最大值
- 注意箱線圖需要使用
-
創建圖表:
Boxplot()
:創建箱線圖實例- `.add_xaxis([“expr1”, “expr2”]):設置X軸的分類標簽
.add_yaxis()
:添加Y軸數據系列,可以添加多個系列進行對比.set_global_opts()
:設置全局選項,如標題等
📌 箱線圖關鍵點總結
- 數據格式必須是嵌套列表,外層列表代表不同的數據系列,內層列表代表每個系列的數據點
- 必須使用
prepare_data()
方法預處理數據,這是箱線圖的特殊要求 - 箱線圖非常適合比較多組數據的分布特征和離散程度
- 可以直觀地識別數據中的異常值(箱線圖中的"離群點")
箱線圖核心參數解釋
參數 | 說明 | 示例 |
---|---|---|
add_xaxis | 設置X軸的分類標簽 | `add_xaxis([“類別1”, “類別2”, “類別3”]) |
add_yaxis | 添加Y軸數據系列 | add_yaxis("系列名稱", data) |
prepare_data | 預處理箱線圖數據,計算統計指標 | c.prepare_data(raw_data) |
set_global_opts | 設置全局選項 | set_global_opts(title_opts=...) |
圖表4:Boxplot & Scatter 組合圖表(高級箱線圖)
下面是一個高級箱線圖的實現代碼,展示了箱線圖與散點圖的組合使用,模擬了著名的邁克爾遜-莫雷實驗數據:
import pyecharts.options as opts
from pyecharts.charts import Grid, Boxplot, Scatter y_data = [ [ 850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980, 930, 650, 760, 810, 1000, 1000, 960, 960, ], [ 960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790, 810, 880, 880, 830, 800, 790, 760, 800, ], [ 880, 880, 880, 860, 720, 720, 620, 860, 970, 950, 880, 910, 850, 870, 840, 840, 850, 840, 840, 840, ], [ 890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920, 890, 860, 880, 720, 840, 850, 850, 780, ], [ 890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870, 810, 740, 810, 940, 950, 800, 810, 870, ],
]
scatter_data = [650, 620, 720, 720, 950, 970] box_plot = Boxplot() box_plot = ( box_plot.add_xaxis(xaxis_data=["expr 0", "expr 1", "expr 2", "expr 3", "expr 4"]) .add_yaxis(series_name="", y_axis=box_plot.prepare_data(y_data)) .set_global_opts( title_opts=opts.TitleOpts( pos_left="center", title="Michelson-Morley Experiment" ), tooltip_opts=opts.TooltipOpts(trigger="item", axis_pointer_type="shadow"), xaxis_opts=opts.AxisOpts( type_="category", boundary_gap=True, splitarea_opts=opts.SplitAreaOpts(is_show=False), axislabel_opts=opts.LabelOpts(formatter="expr {value}"), splitline_opts=opts.SplitLineOpts(is_show=False), ), yaxis_opts=opts.AxisOpts( type_="value", name="km/s minus 299,000", splitarea_opts=opts.SplitAreaOpts( is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1) ), ), ) .set_series_opts(tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}"))
) scatter = ( Scatter() .add_xaxis(xaxis_data=["expr 0", "expr 1", "expr 2", "expr 3", "expr 4"]) .add_yaxis(series_name="", y_axis=scatter_data) .set_global_opts( title_opts=opts.TitleOpts( pos_left="10%", pos_top="90%", title="upper: Q3 + 1.5 * IQR \nlower: Q1 - 1.5 * IQR", title_textstyle_opts=opts.TextStyleOpts( border_color="#999", border_width=1, font_size=14 ), ), yaxis_opts=opts.AxisOpts( axislabel_opts=opts.LabelOpts(is_show=False), axistick_opts=opts.AxisTickOpts(is_show=False), ), )
) grid = ( Grid() .add( box_plot, grid_opts=opts.GridOpts(pos_left="10%", pos_right="10%", pos_bottom="15%"), ) .add( scatter, grid_opts=opts.GridOpts(pos_left="10%", pos_right="10%", pos_bottom="15%"), ) #.render("boxplot_light_velocity.html")
)
grid.render_notebook()
代碼詳解
-
數據準備:
y_data
:包含5組實驗數據,每組有20個數據點,模擬邁克爾遜-莫雷實驗的測量結果scatter_data
:一組特殊的散點數據,用于在圖表上標記特定點(如異常值或參考點)
-
創建箱線圖:
- 使用
Boxplot()
創建箱線圖實例 - 添加X軸數據,對應5個實驗表達式
- 使用
prepare_data()
方法預處理箱線圖數據 - 配置全局選項,包括標題、提示框、坐標軸樣式等
- 設置Y軸名稱為"km/s minus 299,000",符合物理學實驗的表示習慣
- 使用
-
創建散點圖:
- 使用
Scatter()
創建散點圖實例 - 添加相同的X軸數據
- 添加
scatter_data
作為Y軸數據 - 配置散點圖的標題,解釋箱線圖的異常值判斷標準
- 隱藏Y軸的標簽和刻度,避免與箱線圖的Y軸重復
- 使用
-
組合圖表:
- 使用
Grid()
組件將箱線圖和散點圖組合在同一個畫布上 - 通過
grid_opts
設置相同的網格選項,確保兩個圖表對齊 - 散點圖會顯示在箱線圖的上方,兩者共享同一坐標系
- 使用
📌 組合圖表關鍵點總結
Grid()
組件是pyecharts中組合多個圖表的強大工具- 可以通過
pos_left
、pos_right
、pos_bottom
等參數精確控制圖表位置 - 箱線圖與散點圖組合可以同時展示數據分布和特定點標記
SplitAreaOpts
參數可以設置Y軸的分隔區域,增強可讀性- 散點圖的坐標軸選項可以獨立配置,如隱藏標簽和刻度
組合圖表的優勢
這種箱線圖與散點圖的組合有以下優勢:
- 多層次信息展示:同時展示數據的整體分布特征和特定數據點
- 異常值可視化:可以清晰地標記和解釋異常值的判斷標準
- 增強可讀性:通過網格布局和分隔區域,使復雜數據更加直觀易懂
- 專業數據分析:適合科學實驗、統計分析等專業場景
圖表5:多類別箱線圖(自定義提示框)
下面是一個多類別箱線圖的實現代碼,展示了如何添加多個數據系列并自定義提示框內容:
from pyecharts import options as opts
from pyecharts.charts import Boxplot
from pyecharts.commons.utils import JsCode# 省略數據字典(Boxplot().add_xaxis(xaxis_data=axis_data).add_yaxis(series_name="category0",y_axis=data[0]["boxData"],tooltip_opts=opts.TooltipOpts(formatter=JsCode("""function(param) { return ['Experiment ' + param.name + ': ','upper: ' + param.data[0],'Q1: ' + param.data[1],'median: ' + param.data[2],'Q3: ' + param.data[3],'lower: ' + param.data[4]].join('<br/>') }""")),).add_yaxis(series_name="category1",y_axis=data[1]["boxData"],tooltip_opts=opts.TooltipOpts(formatter=JsCode("""function(param) { return ['Experiment ' + param.name + ': ','upper: ' + param.data[0],'Q1: ' + param.data[1],'median: ' + param.data[2],'Q3: ' + param.data[3],'lower: ' + param.data[4]].join('<br/>') }""")),).add_yaxis(series_name="category2",y_axis=data[2]["boxData"],tooltip_opts=opts.TooltipOpts(formatter=JsCode("""function(param) { return ['Experiment ' + param.name + ': ','upper: ' + param.data[0],'Q1: ' + param.data[1],'median: ' + param.data[2],'Q3: ' + param.data[3],'lower: ' + param.data[4]].join('<br/>') }""")),).set_global_opts(title_opts=opts.TitleOpts(title="Multiple Categories", pos_left="center"),legend_opts=opts.LegendOpts(pos_top="3%"),tooltip_opts=opts.TooltipOpts(trigger="item", axis_pointer_type="shadow"),xaxis_opts=opts.AxisOpts(name_gap=30,boundary_gap=True,splitarea_opts=opts.SplitAreaOpts(areastyle_opts=opts.AreaStyleOpts(opacity=1)),axislabel_opts=opts.LabelOpts(formatter="expr {value}"),splitline_opts=opts.SplitLineOpts(is_show=False),),yaxis_opts=opts.AxisOpts(type_="value",min_=-400,max_=600,splitarea_opts=opts.SplitAreaOpts(is_show=False),),datazoom_opts=[opts.DataZoomOpts(type_="inside", range_start=0, range_end=20),opts.DataZoomOpts(type_="slider", xaxis_index=0, is_show=True),],)#.render("multiple_categories.html").render_notebook()
)
代碼詳解
-
數據準備:
axis_data
:X軸的分類標簽data
:包含三個類別的數據字典,每個類別包含箱線圖所需的統計數據- 每個箱線圖數據點格式為
[upper, Q1, median, Q3, lower]
,對應箱線圖的五個關鍵統計量
-
自定義提示框:
- 使用
JsCode
自定義提示框格式,展示箱線圖的五個關鍵統計量 - 提示框內容使用HTML格式,通過
<br/>
實現換行 - 這種自定義格式使數據解讀更加直觀,用戶可以清晰看到每個實驗的統計指標
- 使用
-
多系列添加:
- 通過三次調用
add_yaxis
方法添加三個數據系列 - 每個系列使用不同的類別名稱和對應的數據
- 每個系列都應用了相同的自定義提示框格式
- 通過三次調用
-
全局配置:
- 設置標題居中顯示
- 圖例放置在頂部3%的位置
- X軸設置了分隔區域,增強可讀性
- 添加數據縮放功能,支持內部縮放和滑塊縮放兩種模式
- Y軸設置了固定的取值范圍,確保圖表展示效果
📌 多類別箱線圖關鍵點總結
- 使用
JsCode
可以高度自定義提示框內容,滿足專業數據展示需求 - 多系列箱線圖通過多次調用
add_yaxis
實現,適合多組數據對比 datazoom_opts
參數為圖表添加交互縮放功能,提升用戶體驗- 數據格式可以靈活定義為字典結構,便于管理多個類別的數據
boundary_gap
參數控制坐標軸兩側留白,影響圖表視覺效果
自定義提示框的優勢
自定義提示框為數據可視化帶來以下優勢:
- 信息豐富度:可以展示比默認提示框更多的統計信息
- 可讀性:通過格式化排版,使數據更加易于理解
- 專業性:展示專業統計指標,滿足高級數據分析需求
- 交互體驗:鼠標懸停時提供詳細數據解讀,增強用戶交互體驗
后續將繼續添加更多圖表的實現,包括分組箱線圖和自定義箱線圖等。請繼續關注本博客,獲取更多pyecharts可視化技巧!
常見問題解答
? 日歷圖數據格式有什么要求?
日歷圖要求數據格式為[日期字符串, 數值]
的列表,日期字符串需要是YYYY-MM-DD
格式。例如:
data = [["2023-01-01", 1500], ["2023-01-02", 2000], ...]
? 如何更改日歷圖的顏色主題?
可以通過VisualMapOpts
中的range_color
參數自定義顏色:
visualmap_opts=opts.VisualMapOpts(range_color=["#e6f7ff", "#bae7ff", "#91d5ff", "#69c0ff", "#40a9ff"],# 其他配置...
)
? 日歷圖支持哪些交互功能?
日歷圖支持鼠標懸停顯示詳細信息,點擊日期高亮等交互功能。可以通過tooltip_opts
自定義提示框內容。
💡 專業建議:數據可視化的核心是傳遞信息而非炫技。根據數據特點和展示需求選擇合適的圖表類型,才能讓數據故事更清晰易懂。
總結與展望
通過本教程,我們系統學習了如何使用pyecharts創建五種實用的日歷圖和箱線圖可視化圖表,從基礎到進階,全面掌握了這兩種圖表類型的核心功能和高級應用。
核心收獲
-
日歷圖應用:掌握了基礎日歷圖和高級日歷熱圖的實現方法,學會了通過位置調整、顏色映射和標簽控制來優化視覺效果
-
箱線圖技術:從基礎箱線圖到多類別箱線圖,再到與散點圖的組合應用,全面理解了箱線圖在數據分布分析中的強大功能
-
高級技巧:學習了Grid組件的使用、自定義提示框、數據預處理等高級技巧,能夠創建更加專業和個性化的可視化圖表
實用建議
- 數據準備:日歷圖需要嚴格的日期格式數據,箱線圖需要特定的嵌套列表結構,務必注意數據格式要求
- 視覺優化:合理使用位置參數、顏色映射和標簽控制,可以顯著提升圖表的可讀性和專業感
- 組合應用:嘗試將不同圖表類型組合使用,如箱線圖與散點圖的組合,能夠展示更豐富的數據分析維度
進階方向
- 探索更多pyecharts組件(如Tab、Timeline)與日歷圖/箱線圖的結合應用
- 學習pyecharts的主題定制功能,創建符合特定品牌風格的可視化圖表
- 研究大數據量下的圖表性能優化技巧
- 結合實際業務場景,開發更復雜的交互式數據儀表盤
希望本教程能夠幫助您更好地掌握pyecharts的日歷圖和箱線圖可視化技術,為您的數據可視化工作提供有力支持!