Pandas入门篇(三)-------数据可视化篇2(pandas-plot篇)

目录

  • 概述
  • 一、格式
    • 1. 生成pandas.plotting对象来生成图表
    • 2. 调用plot()函数来生成图表
    • 3.支持的图表类型
  • 二、单变量绘图常用图表
    • 1. 柱状图(bar)
      • 使用场景
      • 代码实现
    • 2. 折线图(line)(默认即为折线图)
      • 适用场景
      • 代码实现
    • 3.面积图(area)
      • 适用场景
    • 代码实现:
    • 4.直方图(hist(bins= n))
      • 适用场景
      • 代码实现
    • 5.饼图(pie)
      • 适用范围
    • 代码实现
  • 三、双变量绘图常用图表
    • 1.散点图(scatter)
      • 适用范围
      • 代码实现
    • 2. 蜂巢图(hexbin)
      • 适用范围
      • 代码实现
    • 3.堆叠图(bar(stacked=True))
      • 适用范围
      • 代码实现
    • 4.面积堆叠图(area)
      • 适用范围
      • 代码实现
  • 下篇内容

概述

Pandas 自带的可视化功能通过 plot 方法提供了一种便捷的方式来创建各种类型的图表。plot 方法是基于 Matplotlib 库构建的,因此它继承了 Matplotlib 的强大功能和灵活性,同时简化了绘图过程,使得用户无需深入了解 Matplotlib 的所有细节即可快速创建图表。

  • 主要特点和优势:
    • 集成性:plot 方法直接集成在 Pandas DataFrame 和 Series 对象中,使得用户可以直接从数据 对象创建图表,无需额外转换数据格式。
    • 便捷性:通过简单的函数调用和参数设置,用户可以快速生成各种类型的图表,无需编写大量的绘图代码。
    • 灵活性:尽管 plot 方法提供了默认的图表样式和设置,但用户仍然可以通过调整参数或使用 Matplotlib 的功能来进一步定制和美化图表。

一、格式

1. 生成pandas.plotting对象来生成图表

格式:

Dataframe[条件].聚合.plot.图形函数

2. 调用plot()函数来生成图表

格式:

Dataframe[条件].聚合.plot(kind = '图表类型',....其他参数)

这两种方法除语法外没有区别,建议使用第一种写法

3.支持的图表类型

plot 方法支持多种图表类型,包括:

  • 线图 (line):用于展示数据随时间或其他连续变量的变化趋势。
  • 柱状图 (bar):用于比较不同类别的数值数据。
  • 水平柱状图 (barh):与柱状图类似,但条形是水平的。
  • 直方图 (hist):用于展示数值数据的分布情况。
  • 箱线图 (box):用于展示一组数值数据的分布特征,包括最小值、最大值、中位数、四分位数等。
  • 面积图 (area):类似于线图,但下方区域被填充颜色,用于强调总量或累积效果。
  • 饼图 (pie):用于展示不同类别的占比情况。
  • 散点图 (scatter):用于展示两个变量之间的关系。
  • 核密度估计图 (kde 或 density):用于展示单变量概率分布的非参数估计。

二、单变量绘图常用图表

导入数据:

import pandas as pd
import pandas as ps
wine = pd.read_csv('/export/data/pandas_data/winemag-data_first150k.csv',index_col=0)
wine

数据样式:
在这里插入图片描述
产看数据基本信息

# 查看数据基本信息
wine.info()

在这里插入图片描述

1. 柱状图(bar)

使用场景

柱状图主要适用于以下类型的数据:

  • 分类数据:柱状图最常用于展示分类数据。
    分类数据是按照某种属性或特征将数据分为不同的类别或组。例如,人口统计中的性别、职业、教育程度等,或者产品销售数据中的不同产品类型。柱状图通过柱子的高度来表示每个类别的频数或占比,使得不同类别之间的数据对比一目了然。

  • 离散数值数据:除了分类数据,柱状图也可以用于展示离散的数值数据,尤其是当这些数值代表不同的类别或组时。
    例如,展示不同年龄段人群的平均收入,或者不同月份的销售额。

  • 时间序列数据(按时间分类):虽然线图通常是时间序列数据的首选可视化方式,但在某些情况下,如果时间序列数据是按固定时间间隔(如月份、季度或年份)收集的,并且主要关注每个时间点的数值而非趋势变化,那么柱状图也是一个可行的选择。
    例如,展示一年中各个月份的销售数据。

  • 排序数据:当需要对分类数据进行排序,并通过可视化来强调这种排序时,柱状图也很适用。
    例如,按销售额从高到低排序的产品类别。

需要注意的是,柱状图不适合用于展示连续变化的数值数据或复杂的趋势关系,因为这可能导致图形过于拥挤,难以解读。在这种情况下,线图或散点图可能更为合适。

代码实现

注:若数据处理部分未明白请先学习本专栏中Pandas入门篇(二)中相关内容

# 展示各省红酒种类排名前10的柱状图,figsize为图表大小,fontsize 为字体大小,color代表柱体颜色
wine['province'].value_counts().head(10).plot.bar(figsize=(10,8),fontsize = 20,color=['r','g','b'])

图表展示:
在这里插入图片描述

2. 折线图(line)(默认即为折线图)

适用场景

折线图(Line Chart)主要适用于展示随时间或其他连续变量变化的数据趋势。以下是折线图适用的数据类型:

  • 时间序列数据:折线图最常用于展示时间序列数据,即数据随时间变化的趋势。例如,股票价格随日期的变化、气温随季节的变化、销售额随月份的变化等。通过连接不同时间点的数据点,折线图可以清晰地揭示数据随时间的变化规律,帮助用户识别趋势、周期性变化或异常值。

  • 连续数值数据:除了时间序列数据,折线图也适用于展示其他连续变量之间的数值关系。只要数据点可以按某种顺序(如大小、等级)排列,就可以使用折线图来表示。这种顺序不必是时间,但数据点之间应该存在某种逻辑上的连续性。

  • 多组数据的对比:当需要同时展示多组数据随时间或其他连续变量的变化趋势时,折线图非常有用。通过不同颜色的线条或标记,可以区分不同的数据系列,从而比较它们之间的相似性和差异性。

需要注意的是,折线图不适用于展示分类数据或离散数值数据,因为这些数据类型通常更适合使用柱状图或饼图等图表类型。此外,如果数据点过多或变化过于复杂,折线图可能会变得难以解读,此时可能需要考虑使用其他可视化方法或对数据进行简化处理。

代码实现

注:若数据处理部分未明白请先学习本专栏中Pandas入门篇(二)中相关内容

# 统计各分数段红酒数量,grid=True)表示显示网格
wine['points'].value_counts().sort_index().plot.line(figsize=(13,8), color='gray',fontsize = 20,grid=True)

图表展示:
在这里插入图片描述

3.面积图(area)

适用场景

面积图是在折线图的基础上,对折线以下的区域进行颜色填充,用于在连续间隔或时间跨度上展示数值。它主要强调数量与时间或其他连续变量的关系,并特别适用于表示趋势和对比关系。因此,面积图主要适用于以下类型的数据:

  • 时间序列数据:面积图非常适合展示随时间变化的数据。例如,企业每个月的销售额、网站每日的访问量等。通过面积图,可以清晰地看到数据随时间变化的趋势,以及不同时间段内数据的累积效果。
  • 连续数值数据:除了时间序列数据,面积图也适用于展示其他连续变量的数值数据。这些数据可以是连续的、有序的,并且可以通过面积的大小来表示数值的大小。
  • 多组数据的对比:当需要同时展示多组数据的变化趋势并进行对比时,面积图是一个很好的选择。通过为不同的数据系列使用不同的颜色或填充模式,可以清晰地看到它们之间的差异和相似之处。
    需要注意的是,面积图在展示大量数据时可能会变得复杂和难以解读。因此,在数据点过多或数据变化过于复杂的情况下,可能需要考虑使用其他类型的图表,如折线图或柱状图。

代码实现:

注:若数据处理部分未明白请先学习本专栏中Pandas入门篇(二)中相关内容

import matplotlib as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示汉字
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
wine['points'].value_counts().sort_index().plot.area(figsize=(13,8), color='gray',fontsize = 20,title = '各分数段红酒数量面积图')

图表展示:
在这里插入图片描述

4.直方图(hist(bins= n))

适用场景

直方图主要适用于展示连续型变量的分布情况。这类数据通常具有无限多个可能的取值,且取值之间可以连续变化,如人的身高、体重、考试成绩等。通过直方图,我们可以清晰地看到数据的集中趋势、分散程度以及可能存在的异常值。

直方图的基本构造是将连续变量划分为若干组(通常是等宽的),然后统计每组的频数或频率,并以矩形的面积来表示。矩形的宽度表示组距,高度表示频数或频率。这样,整个直方图就展示了数据的分布情况。

在实际应用中,直方图常用于以下几个场景:

  • 数据分析与探索:在数据分析的初期阶段,直方图可以帮助我们快速了解数据的分布情况,从而为后续的分析和建模提供基础。
  • 质量控制:在工业生产中,直方图可以用来监控产品的质量分布情况,及时发现异常值或生产过程中的问题。
  • 统计学研究:在统计学中,直方图常用于展示样本数据的分布情况,并与理论分布进行比较,以检验假设或估计参数。
    需要注意的是,直方图虽然能够展示数据的分布情况,但并不能提供关于数据之间关系的信息。因此,在需要分析变量之间关系的情况下,可能需要结合其他类型的图表(如散点图、折线图等)进行综合分析。

代码实现

# 筛选价格 小于 150的, 然后进行: 直方图绘制,bins为划分5个区间
wine[wine['price'] < 150]['price'].plot.hist(bins=10,figsize=(13,8), color='gray',fontsize = 20,title = '价格小于150的红酒数量直方图')

图表展示:
在这里插入图片描述

5.饼图(pie)

适用范围

饼图(Pie Chart)主要适用于展示分类数据的占比情况。具体来说,饼图通过将一个完整的圆饼按照各部分所占的比例来划分,每个部分用不同的颜色或纹理表示,从而直观地展示各类别在总体中所占的比例。

饼图适用于以下类型的数据:

分类数据:饼图最适合用于展示分类数据的占比。例如,展示不同产品类型的销售占比、不同部门的员工人数占比、不同地区的客户数量占比等。通过饼图,可以清晰地看到各类别在总体中的相对大小。
百分比数据:当需要展示各类别所占的百分比时,饼图也是一个很好的选择。通过饼图,可以直观地比较不同类别之间的比例关系,从而更容易地识别出占比最大或最小的类别。
需要注意的是,当饼图中的类别过多时,可能会导致饼图变得拥挤且难以解读。在这种情况下,可以考虑使用其他类型的图表(如柱状图或条形图)来展示数据。此外,饼图只展示了各类别的占比,而不能展示数量的具体值,因此在需要展示具体数值时,可能需要结合其他图表或文字说明进行补充。

代码实现

# 展示各省红酒种类排名前10的饼图
wine['province'].value_counts().head(10).plot.pie(figsize=(10,8),fontsize = 20)

图表展示:
在这里插入图片描述

三、双变量绘图常用图表

1.散点图(scatter)

适用范围

散点图主要适用于显示和比较数值型数据,尤其是当需要观察两个变量之间的关系时。例如,在科学数据、统计数据和工程数据的分析中,散点图常被用来判断数据是否倾向于使用聚类来做分群,或者是否倾向于使用线性回归来做线性分析。

在散点图中,每个数据点代表两个变量的一个观测值,横轴和纵轴分别代表两个不同的变量。通过观察数据点在图上的分布模式,可以判断这两个变量之间是否存在某种关联,如正相关、负相关或无关等。此外,散点图还能展示数据的疏密程度和变化趋势,从而揭示两个连续变量之间的数量关系。

当有两个变量,且其中一个为分类变量时,散点图可以通过改变点的形状或颜色来区分不同的类别,从而揭示这些变量之间的关系。对于所有的变量都为连续性变量的情况,也可以绘制高维散点图进行分析。

需要注意的是,散点图主要用于显示变量之间的关系和趋势,而不是提供精确的数值。因此,在解读散点图时,应结合具体的数据背景和上下文进行理解。

总的来说,散点图适用于分析两个或多个数值型变量之间的关系,尤其在需要观察数据分布和趋势的情况下。

代码实现

# 绘制评分和价格的散点分布图(随机取100样本绘制)
wine.sample(100).plot.scatter(x ='price',y= 'points' ,figsize=(15,6),fontsize=20)

图表展示:
在这里插入图片描述

2. 蜂巢图(hexbin)

适用范围

蜂巢图适用于展示连续型变量的二维分布。这种图表通过将二维平面划分为一系列六边形格子(类似于蜂巢的结构),并统计每个格子内的数据点数量,来揭示数据的分布特征。

蜂巢图尤其适用于以下情况:

  • 连续变量的二维关系:当需要观察两个连续变量之间的分布关系时,Hexplot可以提供一个直观且平滑的展示方式。
    它不像散点图那样在数据点密集时可能出现重叠,而是通过将数据点聚合到六边形格子中,更清晰地展示数据的整体分布趋势。
  • 数据密度可视化:蜂巢图通过颜色的深浅或格子的大小来表示不同区域的数据密度,从而可以快速地识别出数据的聚集区域和稀疏区域。这对于发现数据中的异常值、热点或冷点非常有用。
  • 大量数据点的可视化:当数据量非常大时,散点图可能会变得难以解读,因为大量的数据点可能导致视觉上的混乱。而蜂巢图通过将数据点聚合到六边形格子中,可以有效地减少视觉上的复杂性,同时保留数据的分布特征。

需要注意的是,虽然蜂巢图能够揭示数据的分布趋势和密度,但它可能无法准确地表示单个数据点的具体位置。因此,在需要精确了解每个数据点位置的情况下,可能需要结合其他图表类型(如散点图)进行综合分析。

总的来说,蜂巢图适用于展示连续型变量的二维分布,特别是当数据量较大或需要观察数据密度时。

代码实现

# 4. 处理X轴坐标缺失, 属于Bug(新版本已解决), 可以通过调用 matplotlibde api添加x坐标
import matplotlib.pyplot as plt
fig, a1 = plt.subplots(figsize = (12, 8))
# 绘制评分和价格的蜂巢图,gridsize 为设置蜂巢的大小
wine[wine['price']<100].plot.hexbin(x ='price',y= 'points' ,figsize=(15,6),fontsize=20,gridsize = 20, ax=a1)
# 增加x轴刻度
a1.set_xticks([0, 20, 40, 60, 80, 100])
plt.show()

图表展示:
在这里插入图片描述

3.堆叠图(bar(stacked=True))

适用范围

堆叠图是一种特殊的图表类型,它通过将多个系列的数据在同个类目轴上(同一X轴位置)进行叠加显示,以展示多系列数据的和或各个数据系列的分量。堆叠图特别适用于以下类型的数据:

  • 多个系列数据需要对比:当需要比较两个或多个系列的值时,可以使用堆叠图。它有助于直观地比较各个系列在同一X轴位置上的数据总和或各个数据系列的分量。
  • 关注多系列数据的和:如果更关注于多系列数据的和在不同个类目轴上(不同X轴位置)的差异,而非突出各个系列数据之间的差异性,那么堆叠图是一个很好的选择。
  • 时间序列数据或分类数据:堆叠图可以用于展示时间序列数据或分类数据的趋势和变化。通过堆叠不同时间段或类别的数据,可以清晰地看到各个系列数据的贡献和变化。

需要注意的是,堆叠图并不适用于所有数据场景。例如,当需要比较各个数据点的绝对值时,堆叠图可能不是最佳选择,因为堆叠会导致数据点的实际值变得不那么直观。此外,对于分类数据的比较,如果更关注各个类别的独立表现而非其累加效果,使用其他类型的图表(如柱状图或饼图)可能更为合适。

代码实现

# 根据葡萄酒种类分组, 找到最常见的五种葡萄酒
# 1. 找到 种类最多的 五种酒 的 名字.  
top_5_variety = wine['variety'].value_counts().head().index.to_list()
top_5_variety# 2. 从数据中取出最常见的五种葡萄酒.
top_5_wine = wine[wine.variety.isin(top_5_variety)]
top_5_wine# 3. 透视表计数.
wine_counts = top_5_wine.pivot_table(index='points', columns='variety', values='country', aggfunc='count')
wine_counts# 4. 修改列名, 做不做都行.
# wine_counts.columns = ['Bordeaux-style Red Blend', 'Cabernet Sauvignon', 'Chardonnay','Pinot Noir', 'Red Blend']# 5. 可视化.
wine_counts.plot.bar(stacked=True, figsize=(16, 8))  # 堆叠图

图表展示:
在这里插入图片描述

4.面积堆叠图(area)

适用范围

面积堆叠图(Area Stacked Chart)适合展示具有多个分类或变量,并且需要表现这些分类或变量在总体中的累积量或占比情况的数据。具体来说,它适用于以下几种类型的数据:

  • 多分类或变量的累积量或占比:面积堆叠图能够清晰地表示每个分类或变量在总量中所占的比例,并允许用户在不同分类或变量之间进行比较。
    这对于展示市场份额、销售分布、成本构成等多分类数据的累积量和占比情况非常有用。
  • 时间序列数据:当需要展示多个分类或变量随时间变化的趋势时,面积堆叠图是一个很好的选择。
    通过堆叠不同时间段的数据,用户可以直观地看到每个分类或变量在不同时间点的贡献和变化。
  • 强调部分与整体关系:面积堆叠图通过展示每个数据系列在总体中的占比,强调了部分与整体的关系。这使得用户能够更容易地理解不同数据系列对整体趋势的贡献和影响。

需要注意的是,当分类或变量的数量过多时,面积堆叠图可能会变得拥挤和难以解读。因此,在选择使用面积堆叠图时,需要确保分类或变量的数量适中,以保证图表的清晰度和可读性。

代码实现

wine_counts.plot.area(figsize=(16, 8)) 

图表展示:
在这里插入图片描述

下篇内容

seaborn可视化

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

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

相关文章

计算机毕业设计 | vue+springboot 在线花店后台管理系统(附源码)

1&#xff0c;绪论 1.1 项目背景 随着社会发展&#xff0c;网上购物已经成为我们日常生活的一部分。但是&#xff0c;至今为止大部分电商平台都是从人们日常生活出发&#xff0c;出售都是一些日常用品比如&#xff1a;食物、服装等等&#xff0c;并未发现一个专注于鲜花的电商…

从一到无穷大 #25 DataFusion:可嵌入,可扩展的模块化工业级计算引擎实现

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言架构总览与可扩展性Catalog and Data SourcesFront End逻辑计划与逻辑计划优化器…

使用台式机打开腾讯会议后打开麦克风提示:未检测到可用的麦克风,请插入设备后重试

解决方法如下&#xff1a; 台式机是不带输入设备的&#xff0c;也就是不自带麦克风的&#xff0c;而笔记本电脑是带的。这时候在台式机上可以通过插入有线耳机充当输入设备&#xff0c;就可以正常使用麦克风功能了。 插入之后&#xff0c;可以看到设置里面声音界面包含了一个…

new mars3d.control.MapSplit({实现点击卷帘两侧添加不同图层弹出不同的popup

new mars3d.control.MapSplit({实现点击卷帘两侧添加不同图层弹出不同的popup效果&#xff1a; 左侧&#xff1a; 右侧&#xff1a; 说明&#xff1a;mars3d的3.7.12以上版本才支持该效果。 示例链接&#xff1a; 功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 相关代…

关于视频号小店,常见问题解答,开店做店各方面详解

大家好&#xff0c;我是电商笨笨熊 视频号小店作为今年风口&#xff0c;一个新推出的项目&#xff0c;凭借着自身流量加用户群体的优势吸引了不少的电商玩家。 但对于很多玩家来说&#xff0c;视频号小店完全是一个新的项目、新的领域&#xff0c;因此也会存在很多的疑问&…

数据分析从入门到精通 2.pandas修真之前戏基础

从爱上自己那天起&#xff0c;人生才真正开始 —— 24.5.6 为什么学习pandas numpy已经可以帮助我们进行数据的处理了&#xff0c;那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据&#xff0c;当然在数据分析中除了数值型的数据还有好多其他类型…

接口自动化测试之-requests模块详解

一、requests背景 Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池&#xff0c;支持使用cookie保持会话&#xff0c;支持文件上传&#xff0c;支持自动确定响应内容的编码&#xff0c;支持国际化的 URL 和 POST 数据自动编码。 二、requests安装 利用p…

CI/CD笔记.Gitlab系列.新用户管理

CI/CD笔记.Gitlab系列 新用户管理 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_285502…

记一次攻防演练

看到一处登录后台&#xff0c;各种操作都尝试过无果&#xff0c;翻了一下js,看到一处文件上传接口泄露&#xff08;没图了&#xff0c;已经整改了&#xff09; 构造上传数据包&#xff0c;很nice,上传成功 直接连接webll&#xff0c;搭建隧道进行内网穿透 翻看配置文件&#xf…

简单说说 gather_plan_statistics

DBA的日常核心工作之一是对线上有性能问题的SQL语句进行优化。其中优化SQL语句的最关键的一步是得到SQL的执行计划。那么一个常见的问题来了。如何得到一个SQL语句的真实执行计划?方法有很多。今天说其中一种方法就是使用 gather_plan_statistics(收集计划统计信息) 首先简单…

东方生物工程设备技术有限责任公司带您解读2024第12届上海生物发酵展览会

参展企业介绍 镇江东方生物工程设备技术有限责任公司是国内规模最大的自动成套生化反应设备的专业制造商&#xff0c;也是江苏省最早的专业发酵罐制造公司。公司主要从事液体发酵设备、固体发酵设备、特殊新型生化反应设备以及自动生化反应过程控制系统的研究、开发与制造。 公…

鸿蒙内核源码分析(事件控制篇) | 任务间多对多的同步方案

官方概述 先看官方对事件的描述. 事件&#xff08;Event&#xff09;是一种任务间通信的机制&#xff0c;可用于任务间的同步。 多任务环境下&#xff0c;任务之间往往需要同步操作&#xff0c;一个等待即是一个同步。事件可以提供一对多、多对多的同步操作。 一对多同步模型…

HFP event

0 Preface/Foreword NOTE&#xff1a;在来电提示音在响时候&#xff0c;每3s会进入一次。 也就是说&#xff1a;协议栈&#xff0c;没3s会调用一次app_hfp_event_callback。 回调函数在hfp初始化时候通过btif_hf_register_callback注册。 提示音调节&#xff1a; iPhone6s iO…

区块链开发用的是哪种编程语言?

区块链技术作为近年来备受瞩目的新兴技术之一&#xff0c;其核心的特性之一就是去中心化、安全性高、透明度高和可扩展性强。而区块链的开发语言则是实现这一技术的关键因素之一。那么&#xff0c;区块链开发语言是哪一种编程语言呢&#xff1f; 一、区块链开发语言的特点和选…

OZON卖家必看!2024年OZON运营必备工具大全

OZON运营过程中会用到许多工具网站&#xff0c;都是OZON跨境人运营必备的。为了帮助新卖家在运营OZON时更高效&#xff0c;下面汇总了一份我们在日常运营中频繁使用的工具网站列表。这样大家可以一次性找到所需的所有网址&#xff0c;无需在多个网站间来回切换&#xff0c;节省…

C++:哈希表和unordered系列容器的封装

一、unordered系列关联式容器的介绍 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到log2N&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好的查询是&…

K. 子串翻转回文串

给一个串 s  s1s2... sn&#xff0c;你可以选定其一个非空子串&#xff0c;然后将该子串翻转。具体来说&#xff0c;若选定的子串区间为 [l, r]&#xff08;1 ≤ l ≤ r ≤ n&#xff09;&#xff0c;则翻转后该串变为 s1s2... sl - 1srsr - 1... slsr  1... sn…

海外仓管理软件:如果你这么用,它对你有害无益

虽然说海外仓管理系统是个功能强大的工具&#xff0c;但它并不能解决海外仓所有的问题。 那么什么时候适合使用海外仓系统&#xff0c;什么样的使用方式是错误的&#xff1f;今天就系统的和大家聊聊这个问题。 不要把海外仓管理系统当成“救急”工具 很多时候人们在遇到问题的时…

Day_1

1. 环境搭建 技术选型 后端项目结构 sky-take-out maven父工程&#xff0c;统一管理依赖版本&#xff0c;聚合其他子模块 sky-common 子模块&#xff0c;存放公共类&#xff0c;例如&#xff1a;工具类、常量类、异常类等 sky-pojo 子模块&#xff0c;存放实体类、VO、DTO…

node.js对数据库的操作 之 query(查询)与pool(连接池)

一、Query&#xff08;查询&#xff09; &#xff08;1&#xff09;意义 query是指向数据库发送的一个命令或请求&#xff0c;以检索、更新、插入或删除数据。它是一个具体的SQL语句或NoSQL命令&#xff0c;用于从数据库中获取或修改数据。 &#xff08;2&#xff09;用途 …