Python数据可视化入门指南

news2024/11/22 16:45:50

Matplotlib和Plotly是两个在Python中广泛使用的数据可视化库,它们具有丰富的API和功能,用于创建各种类型的图表和图形。在本篇博客中,我们将介绍它们的主要特点和基本用法。

Matplotlib

主要特点:

  1. 高度自定义: Matplotlib允许开发人员完全自定义图表的各个方面,包括线条样式、颜色、标签、图例、坐标轴等。
  2. 支持多种图表类型: Matplotlib支持多种类型的图表,包括二维和三维图表,使其适用于各种数据可视化需求。
  3. 交互式绘图: Matplotlib可以嵌入到交互式环境中,如Jupyter Notebook,使用户能够实时交互式地探索数据。
  4. 输出格式多样: 可以将Matplotlib绘制的图表保存为多种输出格式,包括图像文件(如PNG、JPEG)、PDF文件,或直接显示在图形用户界面中。

基本用法:

  1. 导入Matplotlib: 使用 import matplotlib.pyplot as plt 导入Matplotlib库,通常使用 plt 作为别名。
  2. 创建图表: 使用 plt.figure() 创建一个图表对象,可以设置图表的大小、分辨率等属性。
  3. 绘制图形: 使用Matplotlib提供的函数和方法来绘制图形,例如使用 plt.plot() 绘制折线图、plt.scatter() 绘制散点图、plt.bar() 绘制柱状图等。
  4. 设置图表属性: 使用函数如 plt.title()plt.xlabel()plt.ylabel() 来设置图表标题和坐标轴标签,使用 plt.legend() 添加图例,使用 plt.grid() 显示网格等。
  5. 显示图表: 使用 plt.show() 来显示绘制的图表。在Jupyter Notebook等交互式环境中,图表通常会自动显示。

Plotly

Plotly的Python库提供了多个API供用户创建交互式可视化图表。以下是Plotly库的一些主要API和其主要功能:

  1. plotly.graph_objects API: 这是Plotly的核心API,允许用户通过创建 go.Figure 对象来绘制各种类型的图表。

    • go.Figure(): 创建一个新的图表对象。
    • add_trace(): 向图表对象添加数据系列,例如线图、散点图、柱状图等。
    • update_layout(): 设置图表的布局和样式,包括标题、坐标轴标签、图例等。
    • update_xaxes()update_yaxes(): 设置X轴和Y轴的属性,如刻度、范围等。
    • show(): 显示图表。
  2. plotly.express API: 这是一个更高级的API,可以用更少的代码生成常见类型的图表。它适用于快速可视化和探索性数据分析。

    • px.line(), px.scatter(), px.bar(): 创建线图、散点图和柱状图等。
    • px.pie(): 创建饼图。
    • px.choropleth(): 创建地图和轮廓地图。
    • 其他快速可视化函数。
  3. plotly.subplots API: 这个API允许用户创建包含多个子图的复杂布局,用于同时显示多个图表。

    • make_subplots(): 创建包含多个子图的图表布局。
    • add_trace(): 向子图添加数据系列。
    • update_layout(): 设置整个布局的样式。
  4. plotly.offline API: 用于将Plotly图表保存为本地文件或在离线环境中显示图表。

    • plot(): 显示图表并将其保存为HTML文件。
    • init_notebook_mode(): 初始化Jupyter Notebook中的Plotly图表显示。
  5. plotly.io API: 用于导出和显示Plotly图表的方法。

    • write_html(): 将图表导出为HTML文件。
    • write_image(): 将图表导出为图像文件(如PNG、JPEG)。
    • show(): 显示图表。

这些API提供了广泛的选项和功能,允许用户创建各种类型的交互式可视化图表。用户可以根据数据和需求选择适当的API,并使用这些API来定制图表的样式、交互性和显示方式。 Plotly的文档和示例提供了更多关于API的详细信息和用法示例。两者都是非常强大的工具,根据需求选择适当的库来实现数据可视化目标。

样例演示:

使用Matplotlib绘制销售业绩分析图表:

Python
复制代码
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
def test01():
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文字体
    x = np.arange(0, 30, 1)
    y1 = 3 * np.sin(2 * x) + 2 * x + 1
    y2 = 2 * np.cos(2 * x) + 3 * x + 9
    plt.figure(figsize=(11, 7))
    plt.plot(x, y1, linestyle='-.', color='red', linewidth=5.0)
    plt.plot(x, y2, marker='*', color='green', markersize=10)
    plt.xlabel('日期', size=16)
    plt.ylabel('金额', size=16, rotation=90, verticalalignment='center')
    x_major_locator = MultipleLocator(2)
    y_major_locator = MultipleLocator(10)
    ax = plt.gca()
    ax.xaxis.set_major_locator(x_major_locator)
    ax.yaxis.set_major_locator(y_major_locator)
    plt.tick_params(labelsize=16)
    plt.xlim(0, 30)
    plt.ylim(0, 100)
    plt.legend(labels=['利润额', '销售额'], loc='upper left', fontsize=15)
    plt.title('2020年9月份企业商品销售业绩分析', loc='center', size=20)
    plt.show()

这个示例代码演示了如何使用Matplotlib库创建销售业绩分析图表,包括自定义样式、标签、刻度等。 这段代码导入了NumPy用于生成数据,Matplotlib库用于绘图,以及用于设置坐标轴刻度间隔的MultipleLocator。

具体实现思路如下:

首先生成销售数据,比如日期、利润额和销售额。这是你需要在图表上展示的数据。这可以通过NumPy来完成,比如:

python
复制代码

x = np.arange(0, 30, 1)
profit = 3 * np.sin(2 * x) + 2 * x + 1
sales = 2 * np.cos(2 * x) + 3 * x + 9

接下来,你可以创建一个图表对象。这将是你的绘图画布,你可以在上面绘制图表。设置图表的大小,可以使用下面的代码:

python
复制代码

plt.figure(figsize=(11, 7))

然后,你可以使用plt.plot()来绘制销售数据的曲线。你可以自定义线条的样式、颜色和宽度。比如:

python
复制代码

plt.plot(x, profit, linestyle='-.', color='red', linewidth=5.0)
plt.plot(x, sales, marker='*', color='green', markersize=10)

接下来,你需要设置坐标轴标签、刻度间隔、刻度标签字体大小和坐标轴范围。这可以使用下面的代码来实现:

python
复制代码

plt.xlabel('日期', size=16)
plt.ylabel('金额', size=16, rotation=90, verticalalignment='center')
x_major_locator = MultipleLocator(2)
y_major_locator = MultipleLocator(10)
ax = plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
ax.yaxis.set_major_locator(y_major_locator)
plt.tick_params(labelsize=16)
plt.xlim(0, 30)
plt.ylim(0, 100)

接着,你可以添加图例以区分不同的曲线,并设置图表的标题:

python
复制代码

plt.legend(labels=['利润额', '销售额'], loc='upper left', fontsize=15)
plt.title('2020年9月份企业商品销售业绩分析', loc='center', size=20)

最后,你可以使用plt.show()来显示你的图表:

python
复制代码

plt.show()

image.png

用Pyecharts库创建了一个柱状图

Python
复制代码
def test02():
    from pyecharts.charts import Bar
    from pyecharts import options as opts
    bar = (
        Bar()
        .add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
        .add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
        .add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
        .set_global_opts(title_opts=opts.TitleOpts(title="商家A和商家B9月份销售数量统计",
                                                   title_textstyle_opts=opts.TextStyleOpts(font_size=20)),
                         xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=16)),
                         yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=16)),
                         toolbox_opts=opts.ToolboxOpts(),
                         legend_opts=opts.LegendOpts(is_show=True, item_width=40, item_height=20,
                                                     textstyle_opts=opts.TextStyleOpts(font_size=16)))
        .set_series_opts(label_opts=opts.LabelOpts(font_size=16))
    )
    bar.render('sales.html')

这段代码是用Pyecharts库创建了一个柱状图,主要展示了两家商家(商家A和商家B)在九月份的销售数量情况。这种图表在比较不同商品销售数据时非常有用。

首先,我们导入所需的库和模块,然后创建一个柱状图对象。我们定义了X轴的标签,这些标签代表不同种类的商品,比如衬衫、毛衣、领带等等。

接下来,我们添加了两个数据系列,分别代表商家A和商家B的销售数据。这些销售数据以列表的形式提供,包括不同商品的销售数量。

然后,我们设置了一些全局选项,如图表的标题、坐标轴标签的字体大小、工具栏选项和图例。标题是"商家A和商家B9月份销售数量统计",为了使标题更醒目,我们将标题字体大小设置为20。坐标轴标签也有一个合适的字体大小,以确保图表易于阅读。

最后,我们还对数据系列进行了一些选项设置,特别是标签的字体大小。

最终,我们使用.render('sales.html')将生成的图表保存为一个HTML文件,文件名为"sales.html"。这个HTML文件可以在浏览器中打开,以查看和分享这个柱状图,从而更好地了解商家A和商家B的销售情况。

效果展示图:

image.png

使用Plotly库来创建一个饼图

Python
复制代码
def test03():
    import plotly.offline as py
    import plotly.graph_objects as go
    store = ['定远店', '东海店', '海恒店', '金寨店', '燎原店', '临泉店', '庐江店', '明耀店', '众兴店']
    consumer = [30, 22, 20, 28, 16, 30, 24, 18, 12]
    fig = go.Figure(
        data=[go.Pie(labels=store, values=consumer, textinfo='label+percent', insidetextorientation='radial')])
    fig.update_layout(
        legend_title="客户类型",  # 图例标题文本
        width=700, height=500,  # 设置图像的大小
        title=dict(
            text="2020年第二季度各门店销售业绩分析",
            x=0.5,
            xanchor='center',
            xref='paper'
        ),
        font=dict(
            family="Courier New, monospace",  # 标题的字体
            size=18,  # 标题的大小
            color="RebeccaPurple"  # 标题的颜色
        )
    )
    py.plot(fig, filename='bingtu.html')

段代码使用了Plotly库来创建一个饼图,用于展示不同门店在2020年第二季度的销售业绩情况。饼图是一种很好的方式来比较各部分在整体中的占比情况。

首先,我们导入了所需的库和模块,包括Plotly的offlinegraph_objects。然后,我们定义了两个列表,storeconsumer,它们分别包含了门店名称和对应的销售业绩数据。

接下来,我们创建了一个Figure对象,其中使用go.Pie创建了一个饼图。在饼图中,labels参数代表各门店的名称,values参数代表对应的销售业绩数据。textinfo参数设置了饼图上显示的文本信息,这里是标签和百分比,insidetextorientation参数设置了文本方向。

然后,我们使用update_layout来设置图表的布局和样式。这包括设置图表的标题、宽度和高度,以及标题的字体、大小和颜色。

最后,我们使用py.plot将生成的饼图保存为一个HTML文件,文件名为"bingtu.html"。这个HTML文件可以在浏览器中打开,以查看和分享门店销售业绩的饼图,帮助理解不同门店在总销售中的占比情况。这是一种直观的数据可视化方法。

展示图如下:

image.png

使用 Pyecharts 库来创建一个地图图表

Python
复制代码
from pyecharts import options as opts
from pyecharts.charts import Map

# 提供的数据
city_sales = [
    ("长沙市", 184), ("株洲市", 192), ("湘潭市", 171), ("衡阳市", 131), ("邵阳市", 149),
    ("岳阳市", 121), ("常德市", 71), ("张家界市", 83), ("益阳市", 88), ("郴州市", 156),
    ("永州市", 99), ("怀化市", 86), ("娄底市", 65)
]
 
city_profits = [
    ("长沙市", 18.4), ("株洲市", 19.2), ("湘潭市", 17.1), ("衡阳市", 13.1), ("邵阳市", 14.9),
    ("岳阳市", 12.1), ("常德市", 7.1), ("张家界市", 8.3), ("益阳市", 8.8), ("郴州市", 15.6),
    ("永州市", 9.9), ("怀化市", 8.6), ("娄底市", 6.5)
]

# 整理数据
city_names = [item[0] for item in city_sales]
profit_data = [item[1] for item in city_profits]

# 绘制商品利润额地图
profits_map = (
    Map()
    .add(
        series_name="2020年湖南省各地级市商品利润额",  # 添加数据的系列名称
        data_pair=[(city, profit) for city, profit in zip(city_names, profit_data)],  # 添加地图数据,包括城市名和商品利润额
        maptype="湖南",  # 地图类型为湖南
        is_map_symbol_show=True,  # 显示城市名
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=True),  # 设置标签选项,这里是显示标签
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="2020年湖南省各地级市商品利润额",
            subtitle="数据来源:湖南省统计局",
            pos_right="10px",
            pos_top="20px",
        ),
        visualmap_opts=opts.VisualMapOpts(max_=max(profit_data)),
    )
)


# 生成 HTML 文件
profits_map.render("湖南省商品利润额地图.html")

这段代码使用了 Pyecharts 库来创建一个地图图表,用于展示湖南省各地级市在2020年的商品利润额情况。以下是代码的口语叙述:

首先,我们导入了所需的库和模块,包括 Pyecharts 的选项模块 opts 和地图图表模块 Map

然后,我们提供了两个数据列表 city_salescity_profits,分别包含了各地级市的销售额和商品利润额数据。这些数据是根据不同城市的统计信息整理而来。

接下来,我们提取了城市名称和商品利润额的数据,以便用于地图图表的绘制。

然后,我们创建了一个地图图表对象 profits_map。在这个图表中,我们使用 .add() 方法添加了地图的系列名称和数据对,其中包括城市名称和商品利润额数据。地图的类型被设置为湖南,表示我们要绘制湖南省的地图,并设置了显示城市名的选项。

接着,我们使用 .set_series_opts() 方法设置了标签选项,以便在地图上显示标签。

最后,我们使用 .set_global_opts() 方法设置了图表的全局选项,包括标题、副标题、位置等信息,并使用 visualmap_opts 设置了可视化地图的选项,以便调整颜色映射和范围。

最后,我们使用 .render() 方法生成了一个 HTML 文件,文件名为 “湖南省商品利润额地图.html”。这个 HTML 文件包含了绘制的地图图表,可以在浏览器中打开以查看湖南省各地级市的商品利润额分布情况。这是一种直观的数据可视化方法,帮助用户更好地理解不同城市的商品利润情况。

效果展示图:

2023-10-16 (2).png

题外话

在此疾速成长的科技元年,编程就像是许多人通往无限可能世界的门票。而在编程语言的明星阵容中,Python就像是那位独领风 骚的超级巨星, 以其简洁易懂的语法和强大的功能,脱颖而出,成为全球最炙手可热的编程语言之一。


Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。

如果你对Python感兴趣,想要学习pyhton,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉CSDN大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

5️⃣Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

赋能制造业高质量发展,释放采购数字化新活力——企企通亮相武汉2023国际智能制造创新论坛

摘要 “为应对成本上升、供应端不稳定、供应链上下游协同困难、决策无数据依据等问题,利用数字化手段降本增效、降低潜在风险十分关键。在AI等先进技术发展、供应链协同效应和降本诉求等机遇的驱动下,采购供应链数字化、协同化成为企业激烈竞争的优先选…

Echats-自定义图表1

效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"zh-cmn-Hans"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>…

设置防火墙

1.RHEL7中的防火墙类型 防火墙只能同时使用一张,firewall底层调用的还是lptables的服务: firewalld:默认 &#xff0c;基于不同的区域做规则 iptables: RHEL6使用&#xff0c;基于链表 Ip6tables Ebtables 2.防火墙的配置方式 查看防火墙状态: rootlinuxidc -]#systemct…

计算机视觉 计算机视觉识别是什么?

计算机视觉识别&#xff08;Computer Vision Recognition&#xff09;是计算机科学和人工智能领域中的一个重要分支&#xff0c;它致力于使计算机系统能够模拟和理解人类视觉的过程&#xff0c;从而能够自动识别、分析和理解图像或视频中的内容。这一领域的发展旨在让计算机具备…

原生JS 表格列拖拽 适用JqGrid

js $(function () {var d1 new dragTable();d1.init({tabel: .drag-table}); })function dragTable() {this.disX 0; // 相对按下的位置移动的距离this.outX 0; // 鼠标按下的点到大盒子边上的距离this.lanX 0; // 拖动到的位置this.$createDiv null;this.$createDivBg …

Java面向对象(进阶)特征之二:继承性

文章目录 一、继承的概述&#xff08;1&#xff09;生活中的继承&#xff08;2&#xff09; Java中的继承1、角度一&#xff1a;从上而下2、角度二&#xff1a;从下而上 &#xff08;3&#xff09;继承的好处&#xff08;4&#xff09;总结 二、继承的语法与应用举例&#xff0…

vue3引入并加载unity工程的两种方式

1、使用unity-webgl插件 npm i unity-webglunity打包后的build文件夹是这样的 需要手动删除.unityweb这个后缀&#xff0c;完成后放在vue3项目的根目录下的public文件夹下。 下面是引入unity的vue组件,其中实例化UnityWebgl时的参数地址直接引用上面的对应文件地址 <scri…

Soul CEO张璐团队创新技术与用户共建,推动网络社交空间绿色发展

近年来,随着互联网社交成为青年人交友的主要方式之一,网络黑灰产业也随之蓬勃发展,新型网络犯罪层出不穷,给用户的安全带来了巨大挑战。为了维护用户的社交安全,国家相关部门不断开展着"净网"、"清朗"等专项行动。在这个背景下,Soul App的CEO张璐及其团队积…

一招教你,如何快速搭建属于自己的AI数字人直播系统!

随着AI技术的不断发展&#xff0c;AI数字人直播系统成为了直播行业的新宠。本文将向大家介绍如何在短时间内快速搭建AI数字人直播系统&#xff0c;并寻找合适的服务商进行OEM合作&#xff0c;为用户带来全新的直播体验。 这边有2种方法你可以选择代理加盟可靠的AI数字人直播系统…

【Java 进阶篇】Java BeanUtils 使用详解

Java中的BeanUtils是一组用于操作JavaBean的工具&#xff0c;它允许你在不了解JavaBean的具体内部结构的情况下&#xff0c;访问和修改其属性。本文将详细介绍Java BeanUtils的使用&#xff0c;包括如何获取和设置JavaBean的属性&#xff0c;复制属性&#xff0c;以及如何处理嵌…

VS Code 全局搜索代码变量名时,有些文件中有这个变量但是没有被搜索到的问题

可以打开visual studio code&#xff0c;打开文件->首选项->设置&#xff0c;去掉 Use Ignore Files 这个选项。

FL Studio21.2中文版终身免费更新

FL Studio水果音乐编曲软件中文版,一款强大的音乐制作软件,可以进行音乐编曲、剪辑、录音、混音。FL Studio中文官网提供各个版本编曲软件的正版购买与下载和众多编曲软件教程。 FL Cloud 音效库包含开放版权的Loop和采样&#xff0c;以及来自 FL Studio 著名用户的艺术家独家…

【安装】自建Rustdesk Server

文章目录 RustDesk说明RustDesk优点RustDesk相关链接非Docker基于CentOSRustDesk默认程序占用端口说明 启动 hbbr 是中继服务器启动 hbbs 是ID服务器客户端配置 RustDesk说明 RustDesk优点 自建服务端。搭建在自己的云服务器就相当于独享高速带宽&#xff01;点对点通信。TCP…

程序从编译到运行

一、程序的编译流程&#xff08;以 C 语言为例&#xff09; 编译一个 C 程序从可以分为四个阶段&#xff1a;预处理 --> 编译&#xff08;生成汇编代码&#xff09;--> 汇编 --> 链接。 下面以大家最熟悉的 hello world 程序为例&#xff0c;编译器为 linux 下的 gcc…

C语言实现斐波那契数列的多种方法

斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;因数学家莱昂纳多斐波那契&#xff08;Leonardo Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”。对于解决此类问题方法有四&#xff0c;前两…

代码随想录算法训练营第三十九天 | LeetCode 62. 不同路径、63. 不同路径 II

代码随想录算法训练营第三十九天 | LeetCode 62. 不同路径、63. 不同路径 II 文章链接&#xff1a;不同路径 不同路径II 视频链接&#xff1a;不同路径 不同路径II 1. LeetCode 62. 不同路径 1.1 思路 本题是个二维矩阵&#xff0c;因此 dp 数组也定义为二维的&…

select...for update 锁表了?

在MySQL中&#xff0c;事务A中使用select...for update where id1锁住了&#xff0c;某一条数据&#xff0c;事务还没提交&#xff0c;此时&#xff0c;事务B中去用select ... where id1查询那条数据&#xff0c;会阻塞等待吗&#xff1f; select...for update在MySQL中&#…

chatgpt 安卓版本提供google play商店版本太旧更新方法

多击play商店版本&#xff0c;开启开发者模式&#xff0c;再点击更新play商店。会自动下载最新版安装。记得开梯子。

太极培训机构展示服务预约小程序的作用如何

太极是适合男女老幼的&#xff0c;很多地方也有相关的学校或培训机构&#xff0c;由于受众广且不太受地域影响&#xff0c;因此对培训机构来说&#xff0c;除了线下经营外&#xff0c;线上宣传、学员获取和发展也不可少。 接下来让我们看下通过【雨科】平台制作太极教培服务预…

面试算法45:二叉树最低层最左边的值

题目 如何在一棵二叉树中找出它最低层最左边节点的值&#xff1f;假设二叉树中最少有一个节点。例如&#xff0c;在如图7.5所示的二叉树中最低层最左边一个节点的值是5。 分析 可以用一个变量bottomLeft来保存每一层最左边的节点的值。在遍历二叉树时&#xff0c;每当遇到新…