【Python数据分析】利用Python中的pyecharts制作—不同的折线图

专栏导读

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

前言

Pyecharts是一个基于Echarts的Python可视化库,可以用Python语言轻松地生成各种交互式图表和地图。它支持多种图表类型,包括折线图、柱状图、散点图、饼图、地图等,并且可以通过简单的API调用实现数据可视化。

Pyecharts的优点包括:

  • 1. 简单易用:Pyecharts提供了简单易用的API,可以轻松地生成各种图表和地图。
  • 2. 丰富的图表类型:Pyecharts支持多种图表类型,包括折线图、柱状图、散点图、饼图、地图等。
  • 3. 交互式可视化:Pyecharts生成的图表可以进行交互式操作,包括缩放、拖拽、数据筛选等。
  • 4. 支持多种数据格式:Pyecharts支持多种数据格式,包括CSV、JSON、Excel等。
  • 5. 可扩展性强:Pyecharts可以与其他Python库和框架集成,如Pandas、Flask、Django等。
总之,Pyecharts是一个功能强大、易于使用的Python可视化库,可以帮助开发者快速生成各种交互式图表和地图。可以帮助开发者快速生成各种交互式图表和地图

1. 库的安装

pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple/

2. 基础折线图

  • 最基本的折线图展示一组数据随时间变化的趋势。

在这里插入图片描述

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 _ in range(6)] for _ in range(5)]
categories = ["产品A", "产品B", "产品C", "产品D", "产品E"]

# 创建动态数据折线图
line = (
    Line()
    .add_xaxis(x_data)
)

for idx, name in enumerate(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 in range(12)]
y_data = [random.randint(100, 1000) for _ in range(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")


总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小庄-Python办公

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值