Python使用Pyecharts繪制各種折線圖的實戰(zhàn)指南
我們一般圖表生成的流程如下:
- 導入需要的模塊
- 準備數(shù)據(jù)
- 創(chuàng)建折線圖實例
- 增加數(shù)據(jù)
- 渲染圖表
- 結果展示
基本折線圖
# 導入需要的模塊
from pyecharts import options as opts
from pyecharts.charts import Line
# 初始化折線圖
line = Line()
# 準備數(shù)據(jù)
line.add_xaxis(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"])
line.add_yaxis("Temperature", [20, 22, 24, 26, 28, 30, 32])
# 渲染圖表
line.set_global_opts(
title_opts=opts.TitleOpts(title="Weekly Temperature"),
xaxis_opts=opts.AxisOpts(name="Day of Week"),
yaxis_opts=opts.AxisOpts(name="Temperature (°C)")
)
#結果展示
line.render("line_chart.html")
多條折線圖
如果需要在同一張圖表中展示多條折線,比如比較不同城市的溫度變化情況,可以使用 add_yaxis 方法添加多條數(shù)據(jù)。
line = Line()
# 添加 x 軸數(shù)據(jù)
line.add_xaxis(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"])
# 添加多條 y 軸數(shù)據(jù)
line.add_yaxis("City A", [22, 24, 26, 28, 30, 32, 34])
line.add_yaxis("City B", [20, 22, 24, 26, 28, 30, 32])
# 設置全局配置項
line.set_global_opts(
title_opts=opts.TitleOpts(title="Weekly Temperature Comparison"),
xaxis_opts=opts.AxisOpts(name="Day of Week"),
yaxis_opts=opts.AxisOpts(name="Temperature (°C)"),
tooltip_opts=opts.TooltipOpts(trigger="axis")
)
line.render("multi_line_chart.html")
平滑折線圖
Pyecharts 也支持將折線設置為平滑曲線,適合展示連續(xù)數(shù)據(jù)的趨勢。
通過is_smooth=True 參數(shù)設置平滑曲線圖
line = Line()
# 添加數(shù)據(jù),設置平滑線
line.add_xaxis(["January", "February", "March", "April", "May", "June", "July"])
line.add_yaxis("Sales", [150, 200, 250, 300, 350, 400, 450], is_smooth=True)
# 設置全局配置項
line.set_global_opts(
title_opts=opts.TitleOpts(title="Monthly Sales"),
xaxis_opts=opts.AxisOpts(name="Month"),
yaxis_opts=opts.AxisOpts(name="Sales (Units)")
)
line.render("smooth_line_chart.html")
增加最大值和最小值和平均值
import pyecharts.options as opts
from pyecharts.charts import Line
# 數(shù)據(jù)
x_data = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
y_data1 = [120, 200, 150, 80, 70, 110, 130]
y_data2 = [90, 150, 200, 120, 100, 80, 110]
line=(
# 創(chuàng)建折線圖實例
Line()
# 將準備好的兩組數(shù)據(jù)添加到折線圖實例中
.add_xaxis(xaxis_data=x_data)
.add_yaxis(series_name="y1線",y_axis=y_data1,symbol="arrow",is_symbol_show=True)
.add_yaxis(series_name="y2線",y_axis=y_data2, markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_="max", name="最大值"),
opts.MarkPointItem(type_="min", name="最小值"),
]
),
markline_opts=opts.MarkLineOpts(
data=[opts.MarkLineItem(type_="average", name="平均值")]
))
.set_global_opts(title_opts=opts.TitleOpts(title="多折線重疊"))
)
# 渲染圖表
line.render_notebook()
階梯圖
在 Pyecharts 中,我們可以通過 add_yaxis 方法中的 step 參數(shù)來繪制階梯圖。step 參數(shù)可以設置為 True,表示繪制階梯線。
from pyecharts.charts import Line
from pyecharts import options as opts
# 初始化折線圖
line = Line()
# 添加 X 軸數(shù)據(jù)
line.add_xaxis(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"])
# 添加 Y 軸數(shù)據(jù),并設置為階梯圖
line.add_yaxis("Sales", [100, 200, 150, 300, 250, 350, 400], is_step=True)
# 設置全局配置項
line.set_global_opts(
title_opts=opts.TitleOpts(title="Weekly Sales - Step Chart"),
xaxis_opts=opts.AxisOpts(name="Day of Week"),
yaxis_opts=opts.AxisOpts(name="Sales (Units)"),
tooltip_opts=opts.TooltipOpts(trigger="axis")
)
# 渲染為本地 HTML 文件
line.render("step_line_chart.html")
面積折線圖
通過設置 area_style_opts=opts.AreaStyleOpts(opacity=0.3))
from pyecharts.charts import Line
from pyecharts import options as opts
# 創(chuàng)建一個折線圖實例
line = Line()
# 添加 X 軸數(shù)據(jù)
line.add_xaxis(["January", "February", "March", "April", "May", "June", "July"])
# 添加 Y 軸數(shù)據(jù),并設置為面積折線圖
line.add_yaxis("Sales", [150, 200, 250, 300, 350, 400, 450],
is_smooth=True,
area_style_opts=opts.AreaStyleOpts(opacity=0.3))
# 設置全局配置項
line.set_global_opts(
title_opts=opts.TitleOpts(title="Monthly Sales - Area Line Chart"),
xaxis_opts=opts.AxisOpts(name="Month"),
yaxis_opts=opts.AxisOpts(name="Sales (Units)"),
tooltip_opts=opts.TooltipOpts(trigger="axis")
)
# 渲染為本地 HTML 文件
line.render("area_line_chart.html")
多條面積折線圖
from pyecharts.charts import Line
from pyecharts import options as opts
# 創(chuàng)建 Line 圖實例
line = Line()
# 添加 X 軸數(shù)據(jù)(這里以月份為例)
line.add_xaxis(["January", "February", "March", "April", "May", "June", "July"])
# 添加多個 Y 軸數(shù)據(jù),并設置為面積折線圖
# 1. 產(chǎn)品A
line.add_yaxis("Product A",
[150, 200, 250, 300, 350, 400, 450],
is_smooth=True, # 使用 linestyle_opts 替代
areastyle_opts=opts.AreaStyleOpts(opacity=0.3), # 設置區(qū)域填充
linestyle_opts=opts.LineStyleOpts(color="green")) # 設置折線顏色為綠色
# 2. 產(chǎn)品B
line.add_yaxis("Product B",
[100, 160, 220, 270, 320, 350, 400],
is_smooth=True, # 使用 linestyle_opts 替代
areastyle_opts=opts.AreaStyleOpts(opacity=0.4), # 設置區(qū)域填充,透明度為0.4
linestyle_opts=opts.LineStyleOpts(color="blue")) # 設置折線顏色為藍色
# 3. 產(chǎn)品C
line.add_yaxis("Product C",
[80, 120, 180, 230, 270, 320, 360],
is_smooth=True, # 使用 linestyle_opts 替代
areastyle_opts=opts.AreaStyleOpts(opacity=0.2), # 設置區(qū)域填充,透明度為0.2
linestyle_opts=opts.LineStyleOpts(color="red")) # 設置折線顏色為紅色
# 設置全局配置項
line.set_global_opts(
title_opts=opts.TitleOpts(title="Product Sales Comparison - Area Line Chart"),
xaxis_opts=opts.AxisOpts(name="Month"), # X 軸名稱
yaxis_opts=opts.AxisOpts(name="Sales (Units)"), # Y 軸名稱
tooltip_opts=opts.TooltipOpts(trigger="axis"), # 鼠標懸停顯示提示
legend_opts=opts.LegendOpts(is_show=True) # 顯示圖例
)
# 渲染圖表為 HTML 文件
line.render("multiple_area_line_chart.html")
1.添加多個系列:
使用 add_yaxis 方法添加不同的產(chǎn)品(或不同的系列)數(shù)據(jù)。在每次調用時設置 is_smooth=True 來平滑折線,area_style=opts.AreaStyleOpts(opacity=0.3) 設置折線下方區(qū)域的透明度(你可以根據(jù)需求調整透明度),并使用 linestyle_opts 設置折線顏色。
2.area_style_opts 的作用:
- opacity=0.3 表示填充區(qū)域的透明度。你可以調整不同系列的透明度,使圖表更具層次感。
- is_smooth=True 用于平滑折線,讓曲線更加平滑。
3.設置全局配置:
- 使用 set_global_opts 方法配置標題、坐標軸和提示框等全局設置。
- legend_opts=opts.LegendOpts(is_show=True) 用于顯示圖例,這樣可以通過點擊圖例來選擇/隱藏不同的系列。
到此這篇關于Python使用Pyecharts繪制各種折線圖的實戰(zhàn)指南的文章就介紹到這了,更多相關Python Pyecharts繪制折線圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python實現(xiàn)封裝得到virustotal掃描結果
這篇文章主要介紹了python實現(xiàn)封裝得到virustotal掃描結果的方法,是比較實用的技巧,可將掃描結果寫入數(shù)據(jù)庫,需要的朋友可以參考下2014-10-10
使用Python實現(xiàn)將中文語音翻譯成英語音頻功能
本文介紹了中文語音翻譯成英語音頻的實現(xiàn)方法,主要分為三個步驟:語音識別(將中文語音轉為文本)、文本翻譯(中文轉英文)和語音合成(英文文本轉音頻),文章詳細說明了注意事項,需要的朋友可以參考下2025-08-08
Python調用OpenCV實現(xiàn)圖像平滑代碼實例
這篇文章主要介紹了Python調用OpenCV實現(xiàn)圖像平滑代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06
Python實現(xiàn)將不規(guī)范的英文名字首字母大寫
這篇文章給大家主要介紹的是利用map()函數(shù),把用戶輸入的不規(guī)范的英文名字,變?yōu)槭鬃帜复髮?,其他小寫的?guī)范名字。文中給出了三種解決方法,大家可以根據(jù)需要選擇使用,感興趣的朋友們下面來一起學習學習吧。2016-11-11
簡單講解Python中的數(shù)字類型及基本的數(shù)學計算
這篇文章主要介紹了Python中的數(shù)字類型及基本的數(shù)學計算,與其他語言一樣,除法相對復雜些,不過本文并未就此深入,需要的朋友可以參考下2016-03-03

