Python-数据分析组合可视化实例图【附完整源码】

数据分析组合可视化实例图

开篇:应女朋友的要求,于是写下了这篇详细的数据可视化代码及完整注释

一:柱状图、折线图横向组合网格布局

本段代码使用了pyecharts库来创建一个包含多个图表(柱状图、折线图)和网格布局的复杂可视化。以下是关于每一行代码的详细解释:

实现效果展示:
在这里插入图片描述

# 从pyecharts库中导入options模块,并将其重命名为opts。
from pyecharts import options as opts
# 从pyecharts.charts模块中导入Bar(柱状图)、Grid(网格布局)和Line(折线图)类。
from pyecharts.charts import Bar, Grid, Line

# 创建第一个柱状图(bar)
# 初始化一个Bar对象。
bar = (
    Bar()
    # 使用.add_xaxis()方法添加X轴数据,这里是月份。
    .add_xaxis(["{}月".format(i) for i in range(1, 13)])
    # 使用.add_yaxis()方法添加两组Y轴数据(蒸发量和降水量),并为它们设置不同的颜色和Y轴索引。
    .add_yaxis(
        "蒸发量",
        [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
        yaxis_index=0,
        color="#d14a61",
    )
    .add_yaxis(
        "降水量",
        [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
        yaxis_index=1,
        color="#5793f3",
    )
    # 使用.extend_axis()方法扩展两个额外的Y轴,分别用于表示蒸发量和温度,设置它们的名称、位置、范围和样式。
    .extend_axis(
        yaxis=opts.AxisOpts(
            name="蒸发量",
            type_="value",
            min_=0,
            max_=250,
            position="right",
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#d14a61")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
        )
    )
    .extend_axis(
        yaxis=opts.AxisOpts(
            type_="value",
            name="温度",
            min_=0,
            max_=25,
            position="left",
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#675bba")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} °C"),
            splitline_opts=opts.SplitLineOpts(
                is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)
            ),
        )
    )
    # 使用.set_global_opts()方法设置全局配置,包括Y轴配置、标题、提示框和图例。
    .set_global_opts(
        yaxis_opts=opts.AxisOpts(
            name="降水量",
            min_=0,
            max_=250,
            position="right",
            offset=80,
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#5793f3")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
        ),
        title_opts=opts.TitleOpts(title="多X/Y轴可视化示例"),
        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
        legend_opts=opts.LegendOpts(pos_left="25%"),
    )
)

# 创建第一个折线图(line)
# 初始化一个Line对象。
line = (
    Line()
    # 使用.add_xaxis()方法添加X轴数据。
    .add_xaxis(["{}月".format(i) for i in range(1, 13)])
    # 使用.add_yaxis()方法添加一组Y轴数据(平均温度),并设置颜色和Y轴索引。
    .add_yaxis(
        "平均温度",
        [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
        yaxis_index=2,
        color="#675bba",
        label_opts=opts.LabelOpts(is_show=False),
    )
)

# 创建第二个柱状图(bar1)
# 类似于第一个柱状图的创建,但X轴和Y轴索引不同,用于在网格布局中定位。
bar1 = (
    Bar()
    .add_xaxis(["{}月".format(i) for i in range(1, 13)])
    .add_yaxis(
        "蒸发量 1",
        [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
        color="#d14a61",
        xaxis_index=1,
        yaxis_index=3,
    )
    .add_yaxis(
        "降水量 2",
        [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
        color="#5793f3",
        xaxis_index=1,
        yaxis_index=3,
    )
    .extend_axis(
        yaxis=opts.AxisOpts(
            name="蒸发量",
            type_="value",
            min_=0,
            max_=250,
            position="right",
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#d14a61")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
        )
    )
    .extend_axis(
        yaxis=opts.AxisOpts(
            type_="value",
            name="温度",
            min_=0,
            max_=25,
            position="left",
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#675bba")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} °C"),
            splitline_opts=opts.SplitLineOpts(
                is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)
            ),
        )
    )
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(grid_index=1),
        yaxis_opts=opts.AxisOpts(
            name="降水量",
            min_=0,
            max_=250,
            position="right",
            offset=80,
            grid_index=1,
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#5793f3")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
        ),
        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
        legend_opts=opts.LegendOpts(pos_left="65%"),
    )
)

# 创建第二个折线图(line1)
# 类似于第一个折线图的创建,但X轴和Y轴索引不同,用于在网格布局中定位。
line1 = (
    Line()
    .add_xaxis(["{}月".format(i) for i in range(1, 13)])
    .add_yaxis(
        "平均温度 1",
        [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
        color="#675bba",
        label_opts=opts.LabelOpts(is_show=False),
        xaxis_index=1,
        yaxis_index=5,
    )
)

# 重叠图表
# 使用.overlap()方法将第一个柱状图和折线图重叠。
overlap_1 = bar.overlap(line)
# 使用.overlap()方法将第二个柱状图和折线图重叠。
overlap_2 = bar1.overlap(line1)

# 创建网格布局(grid)
grid = (
    # 初始化一个Grid对象,并设置初始宽度和高度。
    Grid(init_opts=opts.InitOpts(width="1200px", height="500px"))
    # 使用.add()方法将第一个重叠图表添加到网格的右侧。
    .add(
        overlap_1, grid_opts=opts.GridOpts(pos_right="58%"), is_control_axis_index=True
    )
    # 使用.add()方法将第二个重叠图表添加到网格的左侧。
    .add(overlap_2, grid_opts=opts.GridOpts(pos_left="58%"), is_control_axis_index=True)
    # 使用.render()方法生成并保存HTML文件,该文件包含所有图表和网格布局的可视化。
    .render("重叠图表和网格.html")
)

二:散点图与折线图横向组合网格布局

本段代码展示了如何使用pyecharts库来创建并组合一个散点图和一个折线图,并将它们放置在一个网格(Grid)布局中。以下是关于每一行代码的详细解释:

实现效果展示:
在这里插入图片描述

# 导入pyecharts库中的options模块(并设置别名为opts)
from pyecharts import options as opts
# 导入Grid、Line、Scatter这三个图表类。
from pyecharts.charts import Grid, Line, Scatter

# 定义了两组X轴数据(x_data_a和x_data_b)以及四组Y轴数据(y_data_a、y_data_b、y_date_c、y_date_d)。这些数据将用于创建散点图和折线图
x_data_a = ['草莓', '西瓜', '香蕉', '椰子', '蓝莓', '榴莲', '牛油果']
x_data_b = ['香菜', '蘑菇', '柿子', '黄瓜', '菠菜', '韭菜', '南瓜']
y_data_a = [10, 23, 46, 70, 54, 31, 28]
y_data_b = [15, 20, 31, 55, 35, 43, 68]
y_date_c = [23, 35, 31, 50, 54, 13, 67]
y_date_d = [56, 23, 45, 32, 12, 67, 40]

# 这创建了一个散点图对象scatter
scatter = (
    Scatter()
    # 设置X轴数据为x_data_a
        .add_xaxis(x_data_a)
    # 分别添加两组Y轴数据,并设置其系列名称为“售出”和“收益”。
        .add_yaxis("售出", y_data_a)
        .add_yaxis("收益", y_data_b)
    # 设置全局配置项,包括标题、图例位置和X轴标签的旋转角度。
        .set_global_opts(
        title_opts=opts.TitleOpts(title="蔬菜"),
        legend_opts=opts.LegendOpts(pos_left="20%"),
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)),
    )
)

# 创建了一个折线图对象line
line = (
    Line()
    # 设置X轴数据为x_data_b
        .add_xaxis(x_data_b)
    # 分别添加两组Y轴数据,并设置其系列名称为“售出”和“收益”
        .add_yaxis("售出", y_date_c)
        .add_yaxis("收益", y_date_d)
    # 设置全局配置项,包括标题、图例位置和X轴标签的旋转角度
        .set_global_opts(
        title_opts=opts.TitleOpts(title="水果", pos_right="5%"),
        legend_opts=opts.LegendOpts(pos_right="20%"),
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)),

    )
)

# 这段代码创建了一个Grid对象,用于将散点图和折线图组合在一起
grid = (
    Grid()
    # 将散点图添加到网格中,并设置其位置为左侧55%的位置
        .add(scatter, grid_opts=opts.GridOpts(pos_left="55%"))
    # 将折线图添加到网格中,并设置其位置为右侧55%的位置
        .add(line, grid_opts=opts.GridOpts(pos_right="55%"))
    # 渲染图表,并将其保存为HTML文件,文件名为“散点与折线组合.html”
        .render("散点与折线组合.html")
)

三:柱状图、折线图竖向组合网格布局

本段代码展示了如何使用pyecharts库创建一个包含柱状图和折线图的竖向网格布局图表,并自定义了x轴和y轴的标签和数据。以下是关于每一行代码的详细解释:

实现效果展示:
在这里插入图片描述

# 导入pyecharts库中的options模块,并重命名为opts,用于设置图表的各种选项
from pyecharts import options as opts
# 导入pyecharts库中的Bar(柱状图)、Grid(网格布局)、Line(折线图)图表类
from pyecharts.charts import Bar, Grid, Line

# 定义一个列表,自定义x轴标签
x_axis_data = ["西瓜", "香蕉", "蓝莓", "椰子", "榴莲", "草莓", "木瓜", "水蜜桃"]

# 定义两个列表,自定义柱状图和折线图的y轴数据
bar_y_axis_data = [18, 25, 30, 44, 53, 34, 79, 56]
line_y_axis_data = [13, 30, 67, 45, 55, 67, 89, 54]

# 创建一个柱状图对象,并设置其x轴标签、y轴数据(包括销售量和利润),以及全局选项(如标题)
bar = (
    Bar()
        .add_xaxis(x_axis_data)  # 使用自定义的x轴标签
        .add_yaxis("销售量", bar_y_axis_data)  # 添加一个名为“销售量”的系列,数据为bar_y_axis_data
        .add_yaxis("利润", [v * 0.5 for v in bar_y_axis_data])  # 添加一个名为“利润”的系列,数据为销售量的一半
        .set_global_opts(title_opts=opts.TitleOpts(title="柱状图"))  # 设置全局选项,包括图表标题
)


# 创建一个折线图对象,并设置其x轴标签、y轴数据(包括销售量和利润),以及全局选项(如标题和图例位置)
line = (
    Line()
        .add_xaxis(x_axis_data)  # 使用自定义的x轴标签
        .add_yaxis("销售量", line_y_axis_data)  # 添加一个名为“销售量”的系列,数据为line_y_axis_data
        .add_yaxis("利润", [v * 0.5 for v in line_y_axis_data])  # 添加一个名为“利润”的系列,数据为销售量的一半
        .set_global_opts(
        title_opts=opts.TitleOpts(title="折线图", pos_top="48%"),  # 设置图表标题及其位置
        legend_opts=opts.LegendOpts(pos_top="48%"),  # 设置图例位置
    )
)

# 创建一个网格布局对象,将柱状图和折线图添加到布局中,并设置它们的位置,最后渲染图表到HTML文件
grid = (
    Grid()
        .add(bar, grid_opts=opts.GridOpts(pos_bottom="60%"))  # 将柱状图添加到网格布局中,并设置其位置
        .add(line, grid_opts=opts.GridOpts(pos_top="60%"))  # 将折线图添加到网格布局中,并设置其位置
        .render("柱状图和折线图的网格布局图表.html")  # 渲染图表到HTML文件
)

四:柱状图、折线图内嵌组合网格布局

本段代码展示了如何使用pyecharts库创建并保存一个包含柱状图和折线图的复合图表,通过设置不同的Y轴索引和扩展Y轴,实现了多Y轴的效果。以下是关于每一行代码的详细解释:

实现效果展示:
在这里插入图片描述

# 导入pyecharts库中的options模块和Bar, Grid, Line图表类。
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line
# 创建一个列表x_data,包含1到12月的字符串表示。
x_data = ["{}月".format(i) for i in range(1, 13)]
# 创建一个Bar对象,并添加X轴数据。
bar = (
    Bar()
    .add_xaxis(x_data)
    # 添加一个名为"蒸发量"的Y轴系列,设置其数据、Y轴索引、颜色等属性。
    .add_yaxis(
        "蒸发量",
        [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
        yaxis_index=0,
        color="#d14a61",
    )
    #  添加一个名为"降水量"的Y轴系列,设置其数据、Y轴索引、颜色等属性。
    .add_yaxis(
        "降水量",
        [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
        yaxis_index=1,
        color="#5793f3",
    )
    # 扩展一个名为"蒸发量"的Y轴,设置其名称、类型、最小值、最大值、位置、轴线样式、标签格式等属性。
    .extend_axis(
        yaxis=opts.AxisOpts(
            name="蒸发量",
            type_="value",
            min_=0,
            max_=250,
            position="right",
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#d14a61")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
        )
    )
    # 扩展一个名为"温度"的Y轴,设置其名称、类型、最小值、最大值、位置、轴线样式、标签格式、分割线样式等属性。
    .extend_axis(
        yaxis=opts.AxisOpts(
            type_="value",
            name="温度",
            min_=0,
            max_=25,
            position="left",
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#675bba")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} °C"),
            splitline_opts=opts.SplitLineOpts(
                is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)
            ),
        )
    )
    .set_global_opts(
        yaxis_opts=opts.AxisOpts(
            name="降水量",
            min_=0,
            max_=250,
            position="right",
            offset=80,
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#5793f3")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
        ),
        title_opts=opts.TitleOpts(title="多Y轴示例"),
        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
    )
)

# 创建一个Line对象,并添加X轴数据和名为"平均温度"的Y轴系列,设置其数据、Y轴索引、颜色、标签显示等属性。
line = (
    Line()
    .add_xaxis(x_data)
    .add_yaxis(
        "平均温度",
        [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
        yaxis_index=2,
        color="#675bba",
        label_opts=opts.LabelOpts(is_show=False),
    )
)

# 将折线图line重叠到柱状图bar上。
bar.overlap(line)
# 创建一个Grid对象。
grid = Grid()
# 将bar图表添加到Grid中,并设置其位置参数,以及是否控制轴索引。
grid.add(bar, opts.GridOpts(pos_left="5%", pos_right="20%"), is_control_axis_index=True)
# 将Grid图表渲染为HTML文件,文件名为"树状与折线.html"。
grid.render("柱状与折线内嵌图.html")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/760663.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

服装分销的系统架构

背景 服装的分销规则:组织结构由总公司代理商专卖店构成。总公司全权负责销售业务,并决定给代理商的份额;代理商再给货到专卖店,整个组织机构呈现树状结构;上级机构对下级机构拥有控制权,主要控制其销售的服…

利用谷歌云serverless代码托管服务Cloud Functions构建Gemini Pro API

谷歌在2024年4月发布了全新一代的多模态模型Gemini 1.5 Pro,Gemini 1.5 Pro不仅能够生成创意文本和代码,还能理解、总结上传的图片、视频和音频内容,并且支持高达100万tokens的上下文。在多个基准测试中表现优异,性能超越了ChatGP…

MySQL高阶:事务和并发

事务和并发 1. 事务创建事务 2. 并发和锁定并发问题 3. 事务隔离等级3.1 读取未提交隔离级别3.2 读取已提交隔离级别3.3 重复读取隔离级别3.4 序列化隔离级别 4. 死锁 1. 事务 事务(trasaction)是完成一个完整事件的一系列SQL语句。这一组SQL语句是一条…

植物大战僵尸融合版2024最新版本登场,绝对能满足你的所有期待!

一开场,就让我们直切主题。各位玩家,是否已对《植物大战僵尸》中的传统植物和僵孠对决失去了新鲜感?是否渴望体验更具创意、更富挑战性的游戏玩法?那么,让我来告诉你,《植物大战僵尸融合版》1新版本的登场&…

AI论文速读 | 2024[KDD]ASeer基于异步时空图卷积网络的不规则交通时间序列预测

题目:Irregular Traffic Time Series Forecasting Based on Asynchronous Spatio-Temporal Graph Convolutional Network 作者:Weijia Zhang, Le Zhang, Jindong Han(韩金栋), Hao Liu(刘浩), Jingbo Zhou…

纯硬件FOC驱动BLDC

1. 硬件FOC 图 1 为采用 FOC 的方式控制 BLDC 电机的过程,经由 FOC 变换( Clark 与 Park 变换) ,将三相电流转换为空间平 行电流 ID 与空间垂直电流 IQ。经过 FOC 逆变化逆( Clark 变换与逆 Park 变换) ,将两相电流转换为三相电流用于控 制电…

容器:deque

以下是对于deque容器知识的整理 1、构造 2、赋值 3、大小操作 4、插入 5、删除 6、数据存取 7、排序 #include <iostream> #include <deque> #include <algorithm> using namespace std; /* deque容器&#xff1a;双端数组&#xff0c;可以对头端进行插入删…

网页用事件监听器播放声音

一、什么是监听器&#xff1a; 在前端页面中&#xff0c;事件监听器&#xff08;Event Listener&#xff09;是一种编程机制&#xff0c;它允许开发者指定当特定事件&#xff08;如用户点击按钮、鼠标悬停、页面加载完成等&#xff09;发生时执行特定的代码块。简而言之&#x…

clonezilla(再生龙)克隆物理机linux系统,然后再去另一台电脑安装

前言: 总共需要2个u盘,一个装再生龙系统,一个是使用再生龙把硬盘备份到另一个盘里面,恢复的时候,先使用再生龙引导,然后再插上盘进行复制 1.制作启动u盘 1.1下载再生龙Clonezilla 下載 1.2下载UltraISO(https://cn.ultraiso.net/uiso9_cn.exe) 1.3 打开UltraISO,选择co…

Vue 解决报错 VM6290:1 Uncaught SyntaxError: Unexpected identifier ‘Promise‘

Vue 报错 VM6290:1 Uncaught SyntaxError: Unexpected identifier ‘Promise’ 排查 控制台报了一个错误 , Uncaught SyntaxError: Unexpected identifier ‘Promise’&#xff0c;网上查到的方法是 缺少符号&#xff0c;语法写法错误&#xff0c;但这些都没有解决我的问题&am…

用Lobe Chat部署本地化, 搭建AI聊天机器人

Lobe Chat可以关联多个模型&#xff0c;可以调用外部OpenAI, gemini,通义千问等, 也可以关联内部本地大模型Ollama, 可以当作聊天对话框消息框来集成使用 安装方法参考&#xff1a; https://github.com/lobehub/lobe-chat https://lobehub.com/zh/docs/self-hosting/platform/…

RCE漏洞

RCE&#xff08;Remote code/command execution&#xff09;&#xff0c;远程代码执行和远程命令执行。在很多web应用开发的过程中&#xff0c;程序员可能在代码中编写一些能够运行字符串的函数&#xff0c;当用户可以控制输入内容时&#xff0c;这就导致了RCE漏洞。 1 远程代…

《昇思25天学习打卡营第4天|数据集 Dataset》

文章目录 前言&#xff1a;今日所学&#xff1a;1. 数据集加载2. 数据集迭代3. 数据集常用操作与自定义数据集 前言&#xff1a; 今天学习的是数据集的内容。首先&#xff0c;数据是深度学习的基石&#xff0c;高质量的数据输入能够在整个深度神经网络中发挥积极作用。MindSpo…

安全和加密常识(6)Base64编码方式

文章目录 什么是 Base64编码原理编解码示例应用什么是 Base64 Base64 是一种用于将二进制数据编码为仅包含64种ASCII字符的文本格式的编码方法,注意,它不是加密算法。它设计的目的主要是使二进制数据能够通过只支持文本的传输层(如电子邮件)进行传输。Base64常用于在需要处…

STM32 SWD烧写

最小电路 stm32f103x 内部已经集成了振荡电路&#xff0c;可以省略&#xff1b;rst引脚电路&#xff0c;可以省略&#xff0c;boot0,boot1不需要设置 正常烧录 -------------------------------------------------------------------STM32CubeProgrammer v2.9.0 …

C++旋转点坐标计算

/// 获取A点绕B点旋转P度后的新坐标/// </summary>/// <param name"Angle">角度</param>/// <param name"CirPoint">圆心坐标</param>/// <param name"MovePoint">移动点的坐标</param>/// <param…

window搭建git环境

1.下载安装window下git专用软件scm 从Git for Windows 官网网站下载&#xff0c;并且一路安装即可 安装成功后通过桌面快捷图标Git Bash点击打开 安装后软件应该会自动帮助配置环境变量&#xff0c;如果没有需要自己配置使用 2.git环境配置 2.1设置姓名和邮箱(github上你注…

编码器的使用

视频 提高部分-第4讲 编码器的使用(1)_哔哩哔哩_bilibili 编码器单位 编码器总分辨率 编码器 一圈所计算的脉冲数&#xff08;但由于定时器会倍频 所以计算时要乘以倍频系数&#xff09; 在淘宝上看的分辨率物理分辨率 实际分辨率物理分辨率 * 定时器倍频数&#xff08;一…

c++ 设计模式 的课本范例(下)

&#xff08;19&#xff09; 桥接模式 Bridge&#xff0c;不是采用类继承&#xff0c;而是采用类组合&#xff0c;一个类的数据成员是类对象&#xff0c;来扩展类的功能。源码如下&#xff1a; class OS // 操作系统负责绘图 { public:virtual ~OS() {}virtual void draw(cha…

昇思25天学习打卡营第13天|MindNLP ChatGLM-6B StreamChat

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) MindNLP ChatGLM-6B StreamChat 本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。 1 环境配置 %%capture captured_output # 实验环境已经预装了mindspore2.2.14&#xff0c;如需更换mindspo…