from pyecharts.charts import Line
from pyecharts import options as opts
import random
# 准备数据
x_data =["周一","周二","周三","周四","周五","周六","周日"]
y_data =[150,230,224,218,135,147,260]# 创建折线图
line =(
Line().add_xaxis(x_data).add_yaxis("销售额", y_data).set_global_opts(
title_opts=opts.TitleOpts(title="基础折线图"),
yaxis_opts=opts.AxisOpts(name="销售额(元)"),
xaxis_opts=opts.AxisOpts(name="星期"),))
line.render("basic_line_chart.html")
3. 多系列折线图
在同一图表中展示多个数据系列,便于比较。
from pyecharts.charts import Line
from pyecharts import options as opts
import random
# 准备数据
x_data =["1月","2月","3月","4月","5月","6月"]
y_data1 =[2.0,4.9,7.0,23.2,25.6,76.7]
y_data2 =[2.6,5.9,9.0,26.4,28.7,70.7]
y_data3 =[3.2,6.5,10.3,29.2,32.5,82.7]# 创建多系列折线图
line =(
Line().add_xaxis(x_data).add_yaxis("产品A", y_data1).add_yaxis("产品B", y_data2).add_yaxis("产品C", y_data3).set_global_opts(
title_opts=opts.TitleOpts(title="多系列折线图"),
yaxis_opts=opts.AxisOpts(name="销量(万件)"),
xaxis_opts=opts.AxisOpts(name="月份"),))
line.render("multi_series_line_chart.html")
4. 平滑曲线折线图
将折线图的棱角变为平滑的曲线,使图表更加美观。
from pyecharts.charts import Line
from pyecharts import options as opts
import random
# 准备数据
x_data =["1月","2月","3月","4月","5月","6月"]
y_data =[2.0,4.9,7.0,23.2,25.6,76.7]# 创建平滑曲线折线图
line =(
Line().add_xaxis(x_data).add_yaxis("销量",
y_data,
is_smooth=True,# 开启平滑曲线
linestyle_opts=opts.LineStyleOpts(width=4)# 设置线宽).set_global_opts(
title_opts=opts.TitleOpts(title="平滑曲线折线图"),
yaxis_opts=opts.AxisOpts(name="销量(万件)"),
xaxis_opts=opts.AxisOpts(name="月份"),))
line.render("smooth_line_chart.html")
5. 面积折线图
在折线下方填充颜色,形成面积图,更突出数据量的变化。
from pyecharts.charts import Line
from pyecharts import options as opts
import random
# 准备数据
x_data =["1月","2月","3月","4月","5月","6月"]
y_data =[2.0,4.9,7.0,23.2,25.6,76.7]# 创建面积折线图
line =(
Line().add_xaxis(x_data).add_yaxis("销量",
y_data,
areastyle_opts=opts.AreaStyleOpts(opacity=0.5),# 设置面积样式
linestyle_opts=opts.LineStyleOpts(width=4)).set_global_opts(
title_opts=opts.TitleOpts(title="面积折线图"),
yaxis_opts=opts.AxisOpts(name="销量(万件)"),
xaxis_opts=opts.AxisOpts(name="月份"),))
line.render("area_line_chart.html")
6. 堆叠折线图
多个数据系列堆叠在一起,展示总量的同时也能看到各部分的贡献。
from pyecharts.charts import Line
from pyecharts import options as opts
import random
# 准备数据
x_data =["1月","2月","3月","4月","5月","6月"]
y_data1 =[120,132,101,134,90,230]
y_data2 =[220,182,191,234,290,330]
y_data3 =[150,232,201,154,190,330]# 创建堆叠折线图
line =(
Line().add_xaxis(x_data).add_yaxis("产品A",
y_data1,
stack="总量",# 设置堆叠组
areastyle_opts=opts.AreaStyleOpts(opacity=0.5)).add_yaxis("产品B",
y_data2,
stack="总量",
areastyle_opts=opts.AreaStyleOpts(opacity=0.5)).add_yaxis("产品C",
y_data3,
stack="总量",
areastyle_opts=opts.AreaStyleOpts(opacity=0.5)).set_global_opts(
title_opts=opts.TitleOpts(title="堆叠折线图"),
yaxis_opts=opts.AxisOpts(name="销量(件)"),
xaxis_opts=opts.AxisOpts(name="月份"),))
line.render("stacked_line_chart.html")
7. 带有标记点的折线图
在数据点上添加标记,突出显示关键数据。
from pyecharts.charts import Line
from pyecharts import options as opts
import random
# 准备数据
x_data =["1月","2月","3月","4月","5月","6月"]
y_data =[2.0,4.9,7.0,23.2,25.6,76.7]# 创建带标记点的折线图
line =(
Line().add_xaxis(x_data).add_yaxis("销量",
y_data,
symbol="circle",# 设置标记点形状
symbol_size=10,# 设置标记点大小
label_opts=opts.LabelOpts(is_show=True)# 显示数据标签).set_global_opts(
title_opts=opts.TitleOpts(title="带标记点的折线图"),
yaxis_opts=opts.AxisOpts(name="销量(万件)"),
xaxis_opts=opts.AxisOpts(name="月份"),))
line.render("marked_line_chart.html")
8. 动态数据折线图
展示数据随时间动态变化的折线图。
from pyecharts.charts import Line
from pyecharts import options as opts
import random
# 准备数据
x_data =["1月","2月","3月","4月","5月","6月"]
y_data =[[random.randint(1,100)for _ inrange(6)]for _ inrange(5)]
categories =["产品A","产品B","产品C","产品D","产品E"]# 创建动态数据折线图
line =(
Line().add_xaxis(x_data))for idx, name inenumerate(categories):
line.add_yaxis(
name,
y_data[idx],
label_opts=opts.LabelOpts(is_show=False),
linestyle_opts=opts.LineStyleOpts(width=3))
line.set_global_opts(
title_opts=opts.TitleOpts(title="动态数据折线图"),
yaxis_opts=opts.AxisOpts(name="销量(件)"),
xaxis_opts=opts.AxisOpts(name="月份"),
tooltip_opts=opts.TooltipOpts(trigger="axis"),
datazoom_opts=[opts.DataZoomOpts()]# 添加数据缩放组件)
line.render("dynamic_line_chart.html")
9. 带有数据缩放的折线图
对于数据点较多的折线图,添加数据缩放功能可以方便查看细节。
from pyecharts.charts import Line
from pyecharts import options as opts
import random
# 准备数据 - 生成一年的数据
x_data =[f"{i+1}月"for i inrange(12)]
y_data =[random.randint(100,1000)for _ inrange(12)]# 创建带数据缩放的折线图
line =(
Line().add_xaxis(x_data).add_yaxis("销量",
y_data,
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_="max", name="最大值"),
opts.MarkPointItem(type_="min", name="最小值")])).set_global_opts(
title_opts=opts.TitleOpts(title="带数据缩放的折线图"),
yaxis_opts=opts.AxisOpts(name="销量(件)"),
xaxis_opts=opts.AxisOpts(name="月份"),
datazoom_opts=[
opts.DataZoomOpts(),# 内置型数据区域缩放
opts.DataZoomOpts(type_="inside")# 内置型数据区域缩放]))
line.render("datazoom_line_chart.html")
10. 极坐标折线图
将折线图显示在极坐标系中,适合展示周期性数据。
from pyecharts import options as opts
from pyecharts.charts import Polar
from pyecharts.faker import Faker
# 创建极坐标折线图
polar =(
Polar().add_schema(
radiusaxis_opts=opts.RadiusAxisOpts(data=Faker.week, type_="category")).add("A",[1,2,3,4,3,5,1],
type_="line",
itemstyle_opts=opts.ItemStyleOpts(color="red"),# 设置颜色
symbol="circle",
symbol_size=8).add("B",[2,4,6,1,3,2,1],
type_="line",
itemstyle_opts=opts.ItemStyleOpts(color="blue"),# 设置颜色
symbol="triangle",
symbol_size=8).add("C",[1,2,3,4,1,2,5],
type_="line",
itemstyle_opts=opts.ItemStyleOpts(color="green"),# 设置颜色
symbol="diamond",
symbol_size=8).set_global_opts(title_opts=opts.TitleOpts(title="极坐标折线图")))
polar.render("polar_line_chart.html")