我们一般图表生成的流程如下:
- 导入需要的模块
- 准备数据
- 创建折线图实例
- 增加数据
- 渲染图表
- 结果展示
基本折线图
# 导入需要的模块
from pyecharts import options as opts
from pyecharts.charts import line
# 初始化折线图
line = line()
# 准备数据
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 方法添加多条数据。
line = line()
# 添加 x 轴数据
line.add_xaxis(["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"])
# 添加多条 y 轴数据
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 也支持将折线设置为平滑曲线,适合展示连续数据的趋势。
通过is_smooth=true 参数设置平滑曲线图
line = line()
# 添加数据,设置平滑线
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
# 数据
x_data = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
y_data1 = [120, 200, 150, 80, 70, 110, 130]
y_data2 = [90, 150, 200, 120, 100, 80, 110]
line=(
# 创建折线图实例
line()
# 将准备好的两组数据添加到折线图实例中
.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 参数来绘制阶梯图。step 参数可以设置为 true,表示绘制阶梯线。
from pyecharts.charts import line
from pyecharts import options as opts
# 初始化折线图
line = line()
# 添加 x 轴数据
line.add_xaxis(["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"])
# 添加 y 轴数据,并设置为阶梯图
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
# 创建一个折线图实例
line = line()
# 添加 x 轴数据
line.add_xaxis(["january", "february", "march", "april", "may", "june", "july"])
# 添加 y 轴数据,并设置为面积折线图
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
# 创建 line 图实例
line = line()
# 添加 x 轴数据(这里以月份为例)
line.add_xaxis(["january", "february", "march", "april", "may", "june", "july"])
# 添加多个 y 轴数据,并设置为面积折线图
# 1. 产品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), # 设置区域填充
linestyle_opts=opts.linestyleopts(color="green")) # 设置折线颜色为绿色
# 2. 产品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), # 设置区域填充,透明度为0.4
linestyle_opts=opts.linestyleopts(color="blue")) # 设置折线颜色为蓝色
# 3. 产品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), # 设置区域填充,透明度为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 方法添加不同的产品(或不同的系列)数据。在每次调用时设置 is_smooth=true 来平滑折线,area_style=opts.areastyleopts(opacity=0.3) 设置折线下方区域的透明度(你可以根据需求调整透明度),并使用 linestyle_opts 设置折线颜色。
2.area_style_opts 的作用:
- opacity=0.3 表示填充区域的透明度。你可以调整不同系列的透明度,使图表更具层次感。
- is_smooth=true 用于平滑折线,让曲线更加平滑。
3.设置全局配置:
- 使用 set_global_opts 方法配置标题、坐标轴和提示框等全局设置。
- legend_opts=opts.legendopts(is_show=true) 用于显示图例,这样可以通过点击图例来选择/隐藏不同的系列。
到此这篇关于python使用pyecharts绘制各种折线图的实战指南的文章就介绍到这了,更多相关python pyecharts绘制折线图内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论