Python的Matplotlib

介绍:

Matplotlib 是一个非常强大的 Python 绘图库,支持多种不同类型的图表。以下是 Matplotlib 支持的一些常见图表类型:

前情提要:

from matplotlib import rcParams# 设置支持中文的字体
rcParams['font.sans-serif'] = ['SimHei']  # 设置中文字体为黑体
rcParams['axes.unicode_minus'] = False  # 正常显示负号

如果你要使用中文中必不可少

类型:

2D 图表

  1. 折线图 (Line Plot)

    1. 显示数据点之间的连接线,适合展示趋势。

    2. import matplotlib.pyplot as plt# 数据:x 轴和 y 轴
      x = [1, 2, 3, 4, 5]
      y = [1, 4, 9, 16, 25]# 绘制折线图
      plt.plot(x, y)# 添加标题和标签
      plt.title("简单的折线图")
      plt.xlabel("x 轴")
      plt.ylabel("y 轴")# 显示图形
      plt.show()
      
    3. 代码解析

      1. 数据准备xy 分别是 x 轴和 y 轴的数据。x 轴可以是时间、序列等,y 轴是对应的数值。

      2. 绘制折线图plt.plot(x, y) 用于绘制折线图。xy 为输入的数据点。

      3. 添加标题和标签

        • plt.title("简单的折线图"):设置图表标题。
        • plt.xlabel("x 轴"):设置 x 轴的标签。
        • plt.ylabel("y 轴"):设置 y 轴的标签。
      4. 显示图形plt.show() 用于显示绘制的图形。

    4. 自定义折线图

      • 多条折线图:可以同时绘制多条折线图,用不同的颜色区分。

        • y2 = [25, 20, 15, 10, 5]

          plt.plot(x, y, label="线条 1")

          plt.plot(x, y2, label="线条 2", linestyle='--')

          plt.legend()  # 添加图例

      • 标记数据点:在折线图上显示每个数据点的位置。

        • plt.plot(x, y, marker='o')  # 在数据点上加上圆圈标记

      • 线条样式:你可以修改线条的样式,例如虚线、点线、颜色等。

        • plt.plot(x, y, linestyle='--', color='r')  # 红色虚线

  2. 散点图 (Scatter Plot)

    1. 用点表示数据,适合展示两变量之间的关系。

    2. import matplotlib.pyplot as plt# 数据:x 轴和 y 轴
      x = [1, 2, 3, 4, 5]
      y = [1, 4, 9, 16, 25]# 绘制散点图
      plt.scatter(x, y)# 添加标题和标签
      plt.title("简单的散点图")
      plt.xlabel("x 轴")
      plt.ylabel("y 轴")# 显示图形
      plt.show()
      
    3. 代码解析

      1. 数据准备xy 是两个变量的值,分别对应散点图中的 x 轴和 y 轴。

      2. 绘制散点图:使用 plt.scatter(x, y) 来绘制散点图。与折线图不同,散点图没有连接线,而是通过独立的点来表示数据。

      3. 添加标题和标签

        1. plt.title("简单的散点图"):设置图表标题。
        2. plt.xlabel("x 轴"):设置 x 轴的标签。
        3. plt.ylabel("y 轴"):设置 y 轴的标签。
      4. 显示图形plt.show() 用于显示图形。

    4. 自定义散点图

      1. 改变点的大小和颜色
        • s 用于控制点的大小。
        • c 用于控制点的颜色。
          • plt.scatter(x, y, s=100, c='r')  # 红色且较大的点
      2. 使用不同的标记样式
        • marker 参数允许选择不同的标记类型(如圆圈、星号等)。
          • plt.scatter(x, y, marker='*')  # 星号标记
      3. 绘制多个系列:如果你有多个数据集,可以在同一张图上绘制多个散点图。
        • y2 = [25, 20, 15, 10, 5]
          plt.scatter(x, y, label="系列 1", c='b')  # 蓝色点
          plt.scatter(x, y2, label="系列 2", c='g')  # 绿色点
          plt.legend()  # 添加图例
  3. 条形图 (Bar Plot)

    1. 使用条形表示数据,适合展示类别数据。

    2. import matplotlib.pyplot as plt# 数据
      categories = ['苹果', '香蕉', '橙子', '葡萄', '梨']
      values = [50, 30, 45, 20, 25]# 创建条形图
      plt.bar(categories, values)# 添加标题和标签
      plt.title("水果数量")
      plt.xlabel("水果")
      plt.ylabel("数量")# 显示图形
      plt.show()
      
    3. 代码解析:

      1. plt.bar(categories, values):绘制条形图,其中 categories 是条形图的类别,values 是每个类别对应的值。
      2. plt.title("水果数量"):为图表添加标题。
      3. plt.xlabel("水果")plt.ylabel("数量"):为x轴和y轴添加标签。
      4. plt.show():显示图形。
    4. 水平条形图

      除了竖直的条形图,还可以绘制水平条形图,使用 plt.barh()

      1. import matplotlib.pyplot as plt
        import numpy as np# 数据
        categories = ['苹果', '香蕉', '橙子', '葡萄', '梨']
        values1 = [10, 20, 15, 25, 30]
        values2 = [40, 10, 30, 20, 25]# 创建堆叠条形图
        plt.barh(categories, values1, label='类型1')
        plt.barh(categories, values2, bottom=values1, label='类型2')# 添加标题和标签
        plt.title("堆叠条形图")
        plt.xlabel("水果")
        plt.ylabel("数量")
        plt.legend()# 显示图形
        plt.show()
        
    5. 堆叠条形图

      如果你有多个数据系列,并且想要在同一类别中显示多个堆叠的条形,可以使用堆叠条形图。堆叠条形图将每个类别的条形分成几个部分,表示不同的数据系列。

      1. import matplotlib.pyplot as plt
        import numpy as np# 数据
        categories = ['苹果', '香蕉', '橙子', '葡萄', '梨']
        values1 = [10, 20, 15, 25, 30]
        values2 = [40, 10, 30, 20, 25]# 创建堆叠条形图
        plt.bar(categories, values1, label='类型1')
        plt.bar(categories, values2, bottom=values1, label='类型2')# 添加标题和标签
        plt.title("堆叠条形图")
        plt.xlabel("水果")
        plt.ylabel("数量")
        plt.legend()# 显示图形
        plt.show()
        
      2. 代码解析:

        1. plt.bar(categories, values1)plt.bar(categories, values2, bottom=values1):这两行代码绘制堆叠条形图,其中第二个 bar() 函数通过 bottom 参数指定了堆叠的底部。
        2. plt.legend():为堆叠条形图添加图例。
  4. 直方图 (Histogram)

    1. 用于展示数据的频率分布,常用于描述单一变量。

    2. import matplotlib.pyplot as plt
      # 生成随机数据
      data = np.random.randn(1000)# 绘制直方图
      plt.hist(data, bins=30, edgecolor='black')  # bins: 划分区间的数量# 添加标题和标签
      plt.title("随机数据的直方图")
      plt.xlabel("值")
      plt.ylabel("频率")# 显示图形
      plt.show()
      
    3. 代码解析:

      1. np.random.randn(1000):生成1000个服从标准正态分布(均值为0,标准差为1)的随机数。
      2. plt.hist(data, bins=30, edgecolor='black'):绘制直方图,bins=30表示将数据划分成30个区间,edgecolor='black'为每个条形的边缘设置颜色。
      3. plt.title("随机数据的直方图"):为图表添加标题。
      4. plt.xlabel("值")plt.ylabel("频率"):为x轴和y轴添加标签。
    4. 参数解析:

      1. data:输入的数据集,可以是任何一维数据(例如列表、数组等)。
      2. bins:指定将数据划分成多少个区间。通常,bins的值越大,直方图越精细;越小,直方图越粗糙。也可以传入一个区间边界的数组来自定义每个桶的范围。
      3. edgecolor:条形的边缘颜色,通常用于让直方图的条形更加明显。
    5. 修改直方图的外观

      1. 改变颜色
        1. plt.hist(data, bins=30, edgecolor='black', color='skyblue')  # 设置条形的颜色
      2. 使用不同的间隔方式

        bins参数可以接受不同类型的输入:

        1. 整数:表示将数据划分为多少个区间。
        2. 序列:一个数组,表示区间的具体边界。
        3. bins = [-3, -2, -1, 0, 1, 2, 3]
          plt.hist(data, bins=bins, edgecolor='black')
      3. 对数刻度

        如果数据的范围非常广,可以使用对数刻度来调整y轴显示:

        1. plt.hist(data, bins=30, edgecolor='black')
          plt.yscale('log')  # 设置y轴为对数刻度

    6. 多个数据集的直方图

      1. import matplotlib.pyplot as plt
        import numpy as np# 生成两组随机数据
        data1 = np.random.randn(1000)
        data2 = np.random.randn(1000)# 绘制两个数据集的直方图
        plt.hist(data1, bins=30, alpha=0.5, label='数据集1')
        plt.hist(data2, bins=30, alpha=0.5, label='数据集2')# 添加标题、标签和图例
        plt.title("两个数据集的直方图")
        plt.xlabel("值")
        plt.ylabel("频率")
        plt.legend()# 显示图形
        plt.show()
        
      2. 代码解析:

        1. alpha=0.5:设置条形的透明度,使两个直方图能够重叠显示。
        2. plt.legend():显示图例,帮助区分不同数据集。
  5. 饼图 (Pie Chart)

    1. 用圆形图表示各部分占整体的比例。

    2. import matplotlib.pyplot as plt# 数据
      labels = ['A', 'B', 'C', 'D']
      sizes = [15, 30, 45, 10]  # 每个部分的数值
      colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99']  # 每个部分的颜色
      explode = (0.1, 0, 0, 0)  # 使第一块稍微突出显示# 绘制饼图
      plt.pie(sizes, labels=labels, colors=colors, explode=explode, autopct='%1.1f%%', startangle=140)# 添加标题
      plt.title('简单的饼图')# 显示图形
      plt.show()
      
    3. 代码解析:

      1. labels:指定每个扇区的标签(如A、B、C、D)。
      2. sizes:指定每个扇区的数值(代表各部分占整体的比例)。
      3. colors:为每个扇区指定不同的颜色。
      4. explode:突出显示某些部分(例如,(0.1, 0, 0, 0)表示将第一个部分突出显示)。
      5. autopct='%1.1f%%':显示每个扇区的百分比,保留1位小数。
      6. startangle=140:设置饼图起始角度,默认是从0度开始。通过调整startangle可以旋转饼图,使其更美观。
    4. 饼图的常用参数:

      1. labels:为每个扇区指定一个标签。
      2. sizes:每个扇区的数值或比例。
      3. colors:为每个扇区指定颜色。
      4. autopct:显示扇区的百分比。
      5. startangle:设置饼图的起始角度,默认为0,调整它可以改变饼图的起始显示方向。
      6. explode:通过偏移某些扇区来突出显示,值越大,扇区偏移越远。
    5. 饼图的更多自定义:

      1. 调整扇区标签的字体

        1. plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140, textprops={'fontsize': 12})

      2. 设置阴影效果

        1. plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140, shadow=True)

      3. 设置饼图的圆形比例: 默认情况下,plt.pie()会绘制一个椭圆形的饼图,如果你希望它呈现圆形,可以设置axisequal

        1. plt.axis('equal')  # 保证饼图是圆形的

    6. 展示多个饼图:

      如果你有多个饼图数据,可以在同一张图中绘制多个饼图,使用subplot()进行布局。例如:

      1. fig, axs = plt.subplots(1, 2, figsize=(10, 5))# 第一个饼图
        axs[0].pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)
        axs[0].set_title('饼图1')# 第二个饼图
        axs[1].pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
        axs[1].set_title('饼图2')# 显示图形
        plt.show()
        
  6. 面积图 (Area Plot)

    1. 类似于折线图,但下方区域被填充,适合展示趋势及组成。

    2. import matplotlib.pyplot as plt# 数据
      x = [1, 2, 3, 4, 5]
      y = [1, 4, 9, 16, 25]# 绘制面积图
      plt.fill_between(x, y, color="skyblue", alpha=0.4)# 添加标题和标签
      plt.title("简单的面积图")
      plt.xlabel("x")
      plt.ylabel("y")# 显示图形
      plt.show()
      
    3. 代码解析:

      1. plt.fill_between(x, y, color="skyblue", alpha=0.4)fill_between()函数用来绘制面积图,xy定义了数据点,color设置填充颜色,alpha控制填充的透明度。
      2. plt.title():设置图表的标题。
      3. plt.xlabel()plt.ylabel():设置x轴和y轴的标签。
    4. 堆叠面积图:多个系列

      堆叠面积图不仅展示每个系列的数据,还可以看到每个部分如何累积在一起。适合展示多个部分对整体趋势的贡献。

      1. import matplotlib.pyplot as plt# 数据
        x = [1, 2, 3, 4, 5]
        y1 = [1, 2, 3, 4, 5]
        y2 = [1, 3, 5, 7, 9]# 绘制堆叠面积图
        plt.stackplot(x, y1, y2, labels=["y1", "y2"], alpha=0.5)# 添加标题和标签
        plt.title("堆叠面积图")
        plt.xlabel("x")
        plt.ylabel("y")
        plt.legend(loc="upper left")# 显示图形
        plt.show()
        
      2. 代码解析:

        1. plt.stackplot(x, y1, y2, labels=["y1", "y2"], alpha=0.5)stackplot()函数用来绘制堆叠面积图,可以传入多个系列数据(如y1y2),通过堆叠的方式显示它们的变化。
        2. labels:为每个系列指定标签。
        3. alpha=0.5:设置填充透明度。
      3. 面积图的常用参数:

        1. color:设置填充颜色。
        2. alpha:设置透明度,范围为0到1,值越小,透明度越高。
        3. labels:用于堆叠图时,为每个部分提供标签。
        4. linewidth:设置线条的宽度。
        5. linestyle:设置线条的样式。
  7. 箱型图 (Box Plot)

    1. 用于展示数据的分布情况,显示中位数、四分位数和异常值。

  8. 热图 (Heatmap)

    1. 使用颜色表示数据的强度,适合展示矩阵或二维数据。

  9. 雷达图 (Radar Chart)

    1. 显示多变量的关系,适合展示具有多个维度的数据。

  10. 阶梯图 (Step Plot)

    1. 线段之间为水平,适合展示步骤变化的数据。

  11. 堆积图 (Stacked Plot)

    1. 类似于面积图,但多个数据系列叠加在一起,展示部分与整体的关系。

  12. 双坐标轴图 (Dual Axis Plot)

    1. 使用两个 y 轴显示不同量纲的数据,适合比较不同数据源。

  13. 条形图 (Horizontal Bar Plot)

    1. 条形图的水平版,适合数据分类较多时显示。

  14. 矩形树图 (Tree Map)

    1. 用矩形区域表示层级数据,面积大小与数据值相关。

  15. 渐变图 (Gradient Plot)

    1. 展示颜色从一个色带到另一个色带的渐变,适用于表示数据的变化。

  16. 时间序列图 (Time Series Plot)

    1. 用于显示随时间变化的数据,通常用于金融、经济数据的可视化。

  17. 分布图 (Distribution Plot)

    1. 显示数据的概率分布,通常用于展示数据的密度。

3D 图表

  1. 3D 散点图 (3D Scatter Plot)

    1. 展示三维空间中的数据点,适合分析三维数据的分布。

  2. 3D 曲面图 (3D Surface Plot)

    1. 用于展示三维数据的表面,适合分析三维数据之间的关系。

  3. 3D 等高线图 (3D Contour Plot)

    1. 显示三维数据的等高线,适合分析高度、温度等变化情况。

  4. 3D 栅格图 (3D Wireframe Plot)

    1. 显示三维数据的网格线,适合展示函数图形。

  5. 3D 线图 (3D Line Plot)

    1. 类似于 2D 折线图,但增加了三维的效果,适合展示三维数据的变化。

  6. 3D 直方图 (3D Histogram)

    1. 类似于 2D 直方图,但用于展示三维数据的分布。

总结:

Matplotlib 支持多种类型的图表,适用于不同的场景和需求,包括折线图、散点图、条形图、饼图、直方图、箱型图等。你可以根据数据的特点选择合适的图表类型来展示数据。需要注意的是,Matplotlib 的功能不仅仅限于这些基本图表,你还可以自定义很多其他图形、样式和特效。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络延迟对Python爬虫速度的影响分析

Python爬虫因其强大的数据处理能力和灵活性而被广泛应用于数据抓取和网络信息收集。然而,网络延迟是影响爬虫效率的重要因素之一。本文将深入探讨网络延迟对Python爬虫速度的影响,并提供相应的代码实现过程,以帮助开发者优化爬虫性能。 网络…

单片机设计电流与温度监控python上位机监控平台设计

目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 电路图采用Altium Designer进行设计: 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 在现代工业自动化和智能设备管理中,对电流和温度的实时监控是…

通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制

目录 通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制 一、引言 二、语义搜索与 MongoDB Atlas 的背景 三、MongoDB Atlas 的向量搜索功能 1. 向量搜索的实现方式 2. 典型操作示例 四、RAG 在 MongoDB Atlas 的应用 1、RAG是什么 2、RAG 的实现过程 3、RA…

Spring——事务

事务 JdbcTemplate 简介 Spring框架对JDBC进行封装&#xff0c;使用JdbcTemplate方便实现对数据库操作 准备工作 ①搭建子模块 搭建子模块&#xff1a;spring-jdbc-tx ②加入依赖 <dependencies><!--spring jdbc Spring 持久化层支持jar包--><dependenc…

C++ —— 哈希详解 - 开散列与闭散列

目录 1. 哈希的概念 1.1 直接定址法 1.2 哈希冲突 1.3 负载因子 1.4 哈希函数 1.4.1 除法散列法/除留余数法 1.4.2 乘法散列法 1.4.3 全域散列法 1.5 处理哈希冲突 1.5.1 开放定址法&#xff08;闭散列&#xff09; 1. 线性探测&#xff08;挨着查找&#xff09; 2.…

苦等三年!金克斯大人回来了!

2021年《英雄联盟&#xff1a;双城之战》第一季上线&#xff0c;该动画连续三周在全球 52 个国家和地区占据榜单前十&#xff0c;并在第49届安妮奖中斩获最佳电视 / 流媒体类动画、最佳艺术指导、最佳角色动画等9项大奖。 苦等三年&#xff01;&#xff01;&#xff01; 《双城…

NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备:大华IPC摄像头局域网访问异常解决办法

在当今社会&#xff0c;安全监控已成为各类场所不可或缺的一部分。无论是家庭、学校、商业场所还是公共场所&#xff0c;安全监控设备都扮演着至关重要的角色。在众多监控品牌中&#xff0c;大华IPC摄像头凭借其高清画质、强大功能和卓越稳定性&#xff0c;赢得了市场的广泛认可…

随机数

目录 一、传统方式&#xff1a;std::rand 和 std::srand 使用方法&#xff1a; 优缺点&#xff1a; 二、现代方式&#xff1a; 库&#xff08;推荐&#xff09; 1. 随机整数 2. 随机浮点数 3. 布尔值 4. 字符 5. 正态分布&#xff08;高斯分布&#xff09; 6. 离散分…

Python Plotly 库使用教程

Python Plotly 库使用教程 引言 数据可视化是数据分析中至关重要的一部分&#xff0c;它能够帮助我们更直观地理解数据、发现潜在的模式和趋势。Python 提供了多种数据可视化库&#xff0c;其中 Plotly 是一个功能强大且灵活的库&#xff0c;支持交互式图表的创建。与静态图表…

LeetCode题解:5.最长回文子串【Python题解超详细,中心拓展、动态规划、暴力解法】

题目描述 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 解答 class Solution(object):def longestPalindrome(self, s):""":type s: str:rtype: str"""# 思路一&#xff1a;中心拓展def extend_from_center(left,right):# 从中心向…

企业一站式管理系统odoo的研究——PLM插件的搭建

大纲 1. 环境准备1.1 安装操作系统1.2 更新操作系统1.3 配置用户组和用户1.3.1 创建用户组 odoo1.3.2. 创建用户 odoo1.3.3. 设置用户 odoo 的密码1.3.4. 验证用户和组1.3.5. 将用户 odoo 添加到添加sudo组&#xff1a;1.3.6. 切到odoo用户 2. 安装 Odoo1. 安装依赖项目2.2. 安…

Keil基于ARM Compiler 5的工程迁移为ARM Compiler 6的工程

环境&#xff1a; keil版本为5.38&#xff0c;版本务必高于5.30 STM32F4的pack包版本要高于2.9 软件包下载地址&#xff1a;https://zhuanlan.zhihu.com/p/262507061 一、更改Keil中编译器 更改后编译&#xff0c;会报很多错&#xff0c;先不管。 二、更改头文件依赖 观察…

ABAP开发学习——ST05 ABAP SQL跟踪工具

操作步骤 第一步使用ST05之前&#xff0c;将要查的程序停留想要看的操作的前一步&#xff0c;这里想看到取数操作&#xff0c;所以停留在选择界面 第二步进入ST05 选择SQL Trace 然后激活 第三步去执行程序 第四步ST05取消激活 第五步查看操作 选完时间直接执行

C/C++语言基础--C++模板与元编程系列六,C++元编程相关库的讲解与使用

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 模板与元编程是C的重要特点&#xff0c;也是难点&#xff0c;本人预计将会更新10期左右进行讲解&#xff0c;这是第六期&#xff0c;讲解元编程相关库等&#xff0c;本人感觉这一部分内容还是比较复杂的&am…

uni-app之数据驱动的picker选择器( uni-data-picker)之可以选择到任意级别

背景说明 uni-app 官方的插件市场有数据驱动选择器&#xff0c;可以用作多级分类的场景。本人引入插件后&#xff0c;发现&#xff0c;在h5和微信小程序都只能选择到叶子级。而在给出的官方组件示例中确并非如此。 以选择年级&#xff0c;而不选择班级。然后&#xff0c;想试试…

探索 HTML 和 CSS 实现的蜡烛火焰

效果演示 这段代码是一个模拟蜡烛火焰的HTML和CSS代码。它创建了一个具有动态效果的蜡烛火焰动画&#xff0c;包括火焰的摆动、伸缩和光晕的闪烁。 HTML <div class"holder"><div class"candle"><div class"blinking-glow"&g…

react + ts定义接口类型写法

接口&#xff08;未进行ts定义&#xff09; export async function UserList(params: {// keyword?: string;current?: number;pageSize?: number;},// options?: { [key: string]: any }, ) {return request<API1.UserList>(http://geek.itheima.net/v1_0/mp/artic…

【教程】Ubuntu设置alacritty为默认终端

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 背景介绍 设置教程 注意事项 背景介绍 alacritty是一个开源的终端&#xff0c;比默认的xterm更好看&#xff0c;甚至编辑文本时候还会代码高亮…

使用Element UI实现前端分页,及el-table表格跨页选择数据,切换分页保留分页数据,限制多选数量

文章目录 一、前端分页1、模板部分 (\<template>)2、数据部分 (data)3、计算属性 (computed)4、方法 (methods) 二、跨页选择1、模板部分 (\<template>)2、数据部分 (data)3、方法 (methods) 三、限制数量1、模板部分 (\<template>)2、数据部分 (data)3、方法…

写给初学者的React Native 全栈开发实战班

React Native 全栈开发实战班 亲爱的同学们&#xff1a; 很高兴在这里与大家相聚&#xff01;我是你们的讲师&#xff0c;将带领大家一起踏上 React Native 移动开发的学习之旅。 为什么选择 React Native&#xff1f; 在这个移动互联网时代&#xff0c;App 开发工程师已经…