Python的Pandas和matplotlib库:让数据可视化贼简单

news2025/3/9 8:21:56

在数据爆炸的时代,数据可视化已成为数据分析的关键环节。Python 作为强大的编程语言,拥有众多用于数据可视化的库,而 pandas 库在其中扮演着重要角色。它不仅能高效处理和分析数据,还具备强大的数据可视化功能,让我们轻松将枯燥的数据转化为直观、美观的图表。今天,就带大家深入了解 pandas 库的数据可视化技巧,开启数据可视化之路!

图片

Pandas库可视化基础

pandas 库基于matplotlib构建,提供了简单易用的数据可视化接口。在使用前,需确保已安装 pandas 库和 matplotlib 库:

提前使用pip命令安装pandas和matplotlib库(使用阿里云镜像)

pip install pandas matplotlib -i https://mirrors.aliyun.com/pypi/simple/

通过import pandas as pd和import matplotlib.pyplot as plt导入这两个库,我们可以使用pandas库提供的plot方法将Series和DataFrame的数据进行可视化,生成多种图表(折线图,直方图,柱状图,箱型图,面积图,饼图,散点图,六边形箱体图等)。

plot方法介绍

Series和DataFrame对象都提供了plot方法,常使用两种调用方式:

1)通过df.plot.函数名调用,如下所示

  • 折线图:df.plot.line()

  • 柱状图:df.plot.bar()

  • 水平柱状图:df.plot.barh()

  • 直方图:df.plot.hist()

  • 箱型图:df.plot.box()

  • 面积图:df.plot.area()

  • 饼图:df.plot.pie()

  • 散点图:df.plot.scatter()

  • 六边形箱体图:df.plot.hexbin()

  1. 通过df.plot调用,如下所示

df.plot(kind='line',title='line',x='name',y='math')

Plot参数如下:当数据为Series格式或DataFrame格式时,参数稍有不同;因为Series对象是一维数据,不需要传x轴和y轴的数据,相反DataFrame数据需要传x轴和y轴的数据

图片

  • kind代表("line", "bar", "barh", "kde", "scatter", "area", "hist", "box",'hexbin')表示不同的图形,默认为line。

  • x:指定数据框的列作为x轴的值。如果不指定,则默认使用数据框的索引。

  • y:指定数据框的列作为y轴的值。如果不指定,则默认使用数据框的所有列(在绘制某些类型的图形时,如折线图,需要指定y轴)

  • ax:指定在哪个matplotlib的子图对象上绘制。如果不指定,则默认使用当前的子图。

  • subplots:指定是否使用子图进行绘制。False:不使用子图,所有列绘制在同一个图上。True:使用子图,每一列绘制在一个子图上。按照给定的分组绘制子图,例如[('a', 'c'), ('b', 'd')]会创建两个子图,一个包含列'a'和'c',另一个包含列'b'和'd'。

  • sharex:是否共享x轴。如果为True,会将一些x轴标签设为不可见。如果传入了ax参数,此设置可能会改变所有子图的x轴标签

  • sharey:是否共享y轴。如果为True,会将一些y轴标签设为不可见。

  • layout:指定子图的布局,例如(2, 3)表示两行三列。

  • figsize:指定画布的大小,例如(12, 8)表示12英寸宽8英寸高。

  • use_index:是否使用数据框的索引作为x轴的刻度。如果为False,则使用x参数指定的列作为x轴。

  • title:指定绘制的标题。如果是字符串,会打印在整个画布的顶部;如果是列表,并且subplots为True,会打印每个列表元素在对应的子图上方。

  • grid:是否显示网格线。

  • legend:是否显示图例。在每个子图上显示或反转顺序。

  • style:对每列折线图设置线的类型。

  • logx、logy、loglog:是否使用对数刻度。logx设置x轴刻度是否取对数,logy设置y轴刻度是否取对数,loglog同时设置x、y轴刻度是否取对数。

  • xticks、yticks:设置x轴、y轴的刻度值,序列形式(比如列表)。

  • xlim、ylim:设置坐标轴的范围,列表或元组形式。

  • rot:设置轴标签(轴刻度)的显示旋转度数。

  • fontsize:设置轴刻度的字体大小。

  • colormap:设置图的区域颜色。

  • colorbar:如果为True,则绘制颜色条(仅适用于'scatter'和'hexbin'图)。

  • xlabel和ylabel:设置x轴和y轴的标签,描述x轴和y轴的含义

以上函数调用后,我们需要配合使用matplotlib库帮助我们生成图表,使用如下代码

举例:准备一个DataFrame数据,我们用于生成不同的图表
import pandas as pd
import matplotlib.pyplot as plt
data_dict = {'group': ['A', 'B', 'C', 'D'],
'name': ['lilei', 'lili', 'wanglei', 'wangning'],
'math': [88, 75, 98,95],
'english': [94, 89, 90,87],
'yuwen': [90, 87, 89,91]}

df = pd.DataFrame(data_dict)
print(df)

结果:

图片

折线图:df.plot.line()或df.plot(kind=line)

设置x轴为name列, y轴为math列,title=line设置标题,gtrd=True添加网格线,figsize=(4,3)设置画布大小。

df.plot(kind='line',title='line',x='name',y='math',grid=True,figsize=(4,3))
或者df.plot.line(title='line',x='name',y='math',grid=True,figsize=(4,3))

执行后图如下:

图片

完整代码如下:

import matplotlib.pyplot as plt
import pandas as pd
data_dict = {'group': ['A', 'B', 'C', 'D'],
'name': ['lilei', 'lili', 'wanglei', 'wangning'],
'math': [88, 75, 98,95],
'english': [94, 89, 90,87],
'yuwen': [90, 87, 89,91]}
df = pd.DataFrame(data_dict)
df.plot(kind='line',title='line',x='name',y='math',grid=True,figsize=(4,3))
或者df.plot.line(title='line',x='name',y='math',grid=True,figsize=(4,3))
plt.show() #展示图形

除了开头介绍的plot对象的参数外,df.plot.line 常用的参数包括如下:

  • color:线条的颜色,可以是单个颜色值或颜色列表。

  • linestyle:线条的样式,例如 'solid'(实线,默认)、'dashed'(虚线)、'dotted'(点线)等

  • marker:数据点的标记样式,例如 'o'(圆形)、's'(方形)、'*'(星号)等。

  • alpha:线条的透明度,取值在 0 到 1 之间。

举例:增加上面一些参数后,重新执行(设置颜色为黑色,线条为虚线,数据点为方形)
df.plot.line(title='line',x='name',y='math',grid=True,figsize=(4,3),color='black',linestyle='dashed',marker='s')

图片

举例:在折线图上显示数值

import pandas as pd
import matplotlib.pyplot as plt
# 创建示例数据
data = {'Year': [2015, 2016, 2017, 2018, 2019],
'Sales': [100, 150, 200, 180, 250]}
df = pd.DataFrame(data)
#绘制折线图:xticks=df['Year']表示x轴的刻度跟Year这一列保持一致
ax = df.plot.line(x='Year', y='Sales',xticks=df['Year'])
# 遍历数据点添加数值
for x, y in zip(df['Year'], df['Sales']):
 plt.text(int(x), int(y), int(y))

# 显示图形
plt.show()

程序执行后,结果如下:

图片

柱状图:df.plot.bar()或df.plot(kind=bar)

设置x轴为name列,其他三列作为y轴,并通过colormap='viridis'设置柱子的渐变颜色

df.plot.bar(x='name',y=['math','english','yuwen'],colormap='viridis')

执行后结果如下:

图片

colormap 常见的颜色如下:

  • viridis:从感知较均匀的颜色,从深蓝色到黄色。

  • magma:从黑色到粉色到黄色的渐变。

  • plasma:从深紫色到黄色的渐变。

  • inferno:从黑色到橙色到黄色的渐变。

  • cividis:从感知上较均匀的颜色映射,对色盲比较友好。

  • Greys:灰度颜色映射。

  • Reds:从浅红色到深红色的渐变。

  • Blues:从浅蓝色到深蓝色的渐变。

  • Greens:从浅绿色到深绿色的渐变。

  • Oranges:从浅橙色到深橙色的渐变。

  • Purples:从浅紫色到深紫色的渐变。

除了开头介绍的plot对象的参数外,df.plot.bar 常用的参数包括:

  • color:设置柱形的颜色,可以是单个颜色值或颜色列表。

  • width:柱形的宽度。

  • alpha:柱形的透明度,取值在 0 到 1 之间。

举例:在柱状图上显示数值

import pandasaspd
importmatplotlib.pyplotasplt
# 创建示例数据
data={'Year':[2015,2016,2017,2018,2019],
'Sales':[100,150,200,180,250]}
df=pd.DataFrame(data)
# 绘制柱状图
ax=df.plot.bar(x='Year',y='Sales')
# 遍历数据点添加数值
for p in ax.patches:
ax.annotate(str(p.get_height()),(p.get_x()+p.get_width()/2,
                                  p.get_height()),ha='center',va='center')
# 显示图形
plt.show()

程序执行后,结果如下:

图片

水平柱状图:df.plot.barh()或df.plot(kind=barh)

设置subplots=True表示每一列使用一个子图,设置x轴为name列

df.plot.barh(x='name',subplots=True)

执行后如下:

图片

df.plot.bar h常用的参数包括跟df.plot.bar的参数一致,参考如上介绍。

直方图:df.plot.hist()或者df.plot(kind=hist)

举例:设置一个DataFrame数据,包含某个value项目的数据统计,通过直方图展示。

import pandas as pd
import matplotlib.pyplot as plt
# 创建示例数据
data = {'value': [12, 25, 30, 18, 22, 35, 40, 28, 15, 20]}
df = pd.DataFrame(data)
# 使用 pandas 绘制直方图,配置一些其他参数:bins=3设置3个区间,color=green颜色设置为绿色,edgecolor='black'边框为黑色,xlabel='value',ylabel='count'设置x轴和y轴的标签。

df['Value'].plot.hist(title='Histogram',bins=3, color='green', edgecolor='black',xlabel='value',ylabel='count')
# 显示图形
plt.show()

执行后结果如下:

图片

除了开头介绍的plot对象的参数外,df.plot.hist 常用的参数包括:

  • bins:指定直方图的区间数量。可以是一个整数,表示等宽的区间数量;也可以是一个序列,指定每个区间的边界。

  • color:直方图的颜色。

  • edgecolor:直方图边框的颜色。

  • alpha:直方图的透明度,取值在 0 到 1 之间。

  • grid:布尔值,决定是否显示网格线。

  • density:若为 True,则直方图的纵坐标显示概率密度;若为 False(默认),则显示频数。

  • range:指定数据的范围,以元组形式给出 (min, max) 。

  • histtype:直方图的类型,比如 'bar'(默认,垂直条形)、'barstacked'(堆叠垂直条形)、'step'(阶梯状)、'stepfilled'(填充的阶梯状) 。

饼图:df.plot.pie()或df.plot(kind=pie)

举例:设置一个DataFrame数据,包含某个项目的子项目完成进度的个数统计,通过饼图展示。

import pandas as pd
import matplotlib.pyplot as plt
# 创建示例数据
data = {'result': ['Not started','in progress','completed'],
'count':[5,10,8]}
df = pd.DataFrame(data)
# 使用 pandas 绘制饼图
#将count列作为统计数据,标签labels使用result列,
#autopct展示每个饼图区域的百分比,%1.2f%表示保留2位小数
df.plot.pie(y='count',labels=df['result'],autopct='%1.2f%')
# 显示图形
plt.show()

运行后结果如下:

图片

除了开头介绍的plot对象的参数外,df.plot.pie一些 常用的参数包括:

  • y:指定用于绘制饼图的数据列。

  • labels:指定每个扇区对应的标签。

  • colors:指定扇区的颜色,可以是单个颜色值或颜色列表。

  • explode:设置扇区的偏移程度,通常是一个与数据长度相同的小数列表,用于突出显示某些扇区。

  • shadow:布尔值,决定是否添加阴影效果,使饼图更具立体感。

  • startangle:指定起始角度,默认为 0 度,从 x 轴正方向开始。

  • autopct:用于在扇区上显示百分比格式的数值,例如 '%1.1f%%' 表示保留一位小数的百分比。

  • radius:设置饼图的半径大小。

面积图:df.plot.area()或df.plot(kind=area)

举例:设置一个DataFrame数据,表示某个项目的子项目完成进度的个数统计,通过面积图展示。

import pandas as pd
import matplotlib.pyplot as plt
# 创建示例数据
data = {'result': ['Not started','in progress','completed'],
'count':[5,10,8]}
df = pd.DataFrame(data)
# 使用 pandas 绘制面积图
#将count列作为y轴,result列作为x轴
df.plot.area(x='result',y='count',stacked=False,color='blue')

# 显示图形
plt.show()

运行后结果如下:

图片

除了开头介绍的plot对象的参数外,df.plot.area 用于绘制面积图,以下是一些常用参数:

  • stacked:布尔值,决定是否堆叠面积。如果为 True,则各区域会堆叠显示;如果为 False,则区域会相互覆盖。

  • color:指定图形的颜色,可以是单个颜色值或颜色列表。

  • alpha:设置图形的透明度,取值在 0(完全透明)到 1(完全不透明)之间。

散点图:df.plot.scatter()或df.plot(kind=scatter)

举例:设置一个DataFrame数据,包含x轴和y轴的一些数字,通过散点图展示。

import pandas as pd
import matplotlib.pyplot as plt
# 创建示例数据
data = {'X': [1, 2, 3, 4, 5],
'Y': [2, 4, 6, 8, 10],
'Size': [100, 200, 150, 300, 250],
'Color': ['red', 'blue', 'green', 'yellow', 'purple']}
df = pd.DataFrame(data)
# 绘制散点图
df.plot.scatter(x='X', y='Y', s=df['Size'], 
                c=df['Color'], marker='o', alpha=0.7)
# 显示图形
plt.show()

运行后结果如下:

图片

除了开头介绍的plot对象的参数外,df.plot.scatter 常用的参数包括:

  • s:控制点的大小,可以是一个固定值或者一个与数据长度相同的数组来为每个点设置不同的大小。

  • c:控制点的颜色,可以是一个固定的颜色值,也可以是一个与数据长度相同的数组来为每个点设置不同的颜色。

  • marker:点的标记样式,例如 'o'(圆形)、's'(方形)、'*'(星号)等。

  • alpha:点的透明度,取值在 0(完全透明)到 1(完全不透明)之间。

  • edgecolors:点的边缘颜色。

  • linewidths:点的边缘线宽。

箱型图:df.plot.box()或df.plot(kind=box)

举例:设置一个DataFrame数据,表示股票在K线图中的最高价(High Price)、最低价(Low Price)、收盘价(Close Price)和开盘价(Open Price),通过箱体图展示。

import pandas as pd
import matplotlib.pyplot as plt
# 创建示例数据
data = {'type': ['High Price','Open Price'
                 ,'Low Price','Close Price'],
       'price':[10.22,9.99,9.78,10.10]}

df = pd.DataFrame(data)
# 使用 pandas 绘制箱体图
#将'price'列作为y轴
df.plot.box(column='price')

# 显示图形
plt.show()

运行后结果如下:

图片

除了开头介绍的plot对象的参数外,df.plot.box 的一些常用参数:

  • column:指定要绘制箱线图的数据列名。

  • by:用于分组的列名,以便为不同的组绘制单独的箱线图。

  • color:箱线图的颜色。

  • sym:异常值的标记样式。

  • vert:布尔值,决定箱线图是垂直绘制(True,默认)还是水平绘制(False)。

  • widths:箱线图的宽度。

  • notch:布尔值,如果为 True,则绘制带缺口的箱线图。

  • patch_artist:布尔值,如果为 True,则用填充的方式绘制箱体。

六边形箱体图:df.plot.hexbin()或df.plot(kind=hexbin)

举例:设置一个DataFrame数据,随机生成数量一致的x轴和y轴的数据,通过六边形箱体图展示。

import pandas as pd
import matplotlib.pyplot as plt
import random
# 创建示例数据
x = [random.randint(0,100) for i in range(20)]
y = [random.randint(0,100) for i in range(20)]
df = pd.DataFrame({'X': x, 'Y': y})
# 绘制六边形箱体图
df.plot.hexbin(x='X', y='Y', gridsize=20, color='k')
# 显示图形
plt.show()

运行后结果如下:

图片

除了开头介绍的plot对象的参数外,df.plot.hexbin 用于绘制六边形分箱图。以下是一些常用参数:

  • gridsize:控制六边形网格的大小。较小的值会产生更多、更精细的六边形。

  • C:可以指定与每个点相关的值,用于给六边形着色。

  • reduce_C_function:用于聚合 C 值的函数,例如 np.mean(默认)、np.sum 等。

  • mincnt:六边形中包含的最小点数,少于这个点数的六边形不会被绘制。

  • xscale、yscale:控制 X 轴和 Y 轴的缩放,例如 'linear'(默认)、'log' 等。

  • color:六边形的颜色。

  • cmap:颜色映射(Color Map),用于根据 C 值进行颜色映射。

大家注意了,以上图表暂不支持中文(中文会有乱码),如果需要中文可能要再继续探索下了。

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

----感谢读者的阅读和学习,谢谢大家。

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

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

相关文章

数据结构基础之《(19)—矩阵处理》

一、zigzag打印矩阵 Z字形打印矩阵 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 打印顺序:1,2,7,13,8,3,4,9,14... 核心技巧:找到coding上的宏观调度 左上角有A、B两个点,A往右一步一步走,B往下一步一步走 写一个…

IDEA与Maven使用-学习记录(持续补充...)

1. 下载与安装 以ideaIU-2021.3.1为例,安装步骤: 以管理员身份启动ideaIU-2021.3.1修改安装路径为:D:\Program Files\JetBrains\IntelliJ IDEA 2021.3.1勾选【创建桌面快捷方式】(可选)、【打开文件夹作为项目】&…

nuxt2 打包优化使用“compression-webpack-plugin”插件

在使用 Nuxt.js 构建项目时,为了提高性能,通常会考虑对静态资源进行压缩。compression-webpack-plugin 是一个常用的 Webpack 插件,用于在生产环境中对文件进行 Gzip 压缩。这对于减少网络传输时间和提高页面加载速度非常有帮助。下面是如何在…

ArcGIS Pro:轻松制作地震动画,洞察灾害动态

在当今的信息展示领域,动画因其直观、生动的特点,逐渐成为各类汇报、研究展示中的重要元素。 尤其是在地理信息领域,通过动画来展示动态的地理现象,能够让观众更清晰地理解数据背后所蕴含的信息。 地震作为一种突发性的自然灾害…

MAVEN手动配置(阿里云)全教程

介于网上各种各样的MAVEN配置过程中方法大致相同却细节参差不齐,我总结了我遇见的一些问题,来完全的解决MAVEN手动配置的全过程,以及分享解决小毛病的经验。 所需材料: MAVEN3.9.9(下载适合自己的版本即可&#xff09…

贪心算法一

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是贪心算法,并且掌握贪心算法。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! >…

计算机毕业设计Python+DeepSeek-R1大模型微博的话题博文及用户画像分析系统 微博舆情可视化(源码+ 文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

Secret Cow Code S

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝 既然选择了远方,当不负青春,砥砺前行! 题目描述 奶牛们正在实验秘密代码,并设计了一种方法用于生成无限长度的字符…

MyBatis - XML CRUD 其他查询

1. XML 配置文件 使用 MyBatis 操作数据库的方式有两种: 注解 (在注解中定义 SQL 语句)XML 配置文件 (在 XML 文件中定义 SQL 语句) 在上一篇博客中, 已经讲解了如何使用注解操作数据库, 本篇文章来讲解如何使用 XML 进行 MyBatis 开发. 使用 XML 的步骤, 和使用注解的步骤…

牛客python蓝桥杯11-32(自用)

11 import os import sysdef huiwen(str):length len(str)# if length 0:# return -1result []for i in range(length-1): # 0 - length-2for j in range(i2,length1):# 取出从索引 i 到 j-1 的子串s str[i:j]# 正序倒序if s s[::-1]:result.append(len(s))if result…

rabbitmq版本升级并部署高可用

RabbitMQ版本升级 先检查是否已经安装rabbitmq rpm -qa|grep rabbitmq|wc -l //如果结果是0,表示没有安装 rpm -e --nodeps $(rpm -qa|grep rabbitmq) //如安装了,则进行卸载 先检查是否已经安装erlang rpm -qa|grep erlang|wc -l //如果结果…

数据集路径出错.yaml‘ images not found , missing path

方法一:删除settings.yaml 方法二:dataset_name.yaml改用绝对路径,如最后一张图 错误分析: dataset_name.yaml中的path的路径仅支持绝对路径,写相对路径就会搜索不到,使用settings.json中的路径&#xff0…

win32汇编环境,对话框中使用树形视图示例二

;运行效果 ;win32汇编环境,对话框中使用树形视图示例二 ;得到树形视图控件Treeview的全路径字符串,这里的方法是由子项向父项挨个找的算法找齐路径 ;直接抄进RadAsm可编译运行。重要部分加备注。 ;下面为asm文件 ;>>>>>>>>>>>>>>&g…

【连珠云弈】网页五子棋版项目测试报告

目录 一、项目背景 1.1、项目起源 1.2、市场需求 1.3、项目目标 二、项目功能 2.1 用户管理功能 2.2 游戏对战功能 三、测试报告 3.1.功能测试 ​编辑 3.1.1注册功能测试 解决bug: 测试总结: 3.1.2登录功能测试 测试总结: 3.…

OpenCV计算摄影学(15)无缝克隆(Seamless Cloning)调整图像颜色的函数colorChange()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::colorChange 是 OpenCV 中用于调整图像颜色的函数。它允许你通过乘以不同的系数来独立地改变输入图像中红色、绿色和蓝色通道的强度&#xf…

AI视频领域的DeepSeek—阿里万相2.1图生视频

让我们一同深入探索万相 2.1 ,本文不仅介绍其文生图和文生视频的使用秘籍,还将手把手教你如何利用它实现图生视频。 如下为生成的视频效果(我录制的GIF动图) 如下为输入的图片 目录 1.阿里巴巴全面开源旗下视频生成模型万相2.1模…

用Python分割并高效处理PDF大文件

在处理大型PDF文件时,将它们分解成更小、更易于管理的块通常是有益的。这个过程称为分区,它可以提高处理效率,并使分析或操作文档变得更容易。在本文中,我们将讨论如何使用Python和为Unstructured.io库将PDF文件划分为更小的部分。…

RabbitMQ知识点

1.为什么需要消息队列? RabbitMQ体系结构 操作001:RabbitMQ安装 二、安装 # 拉取镜像 docker pull rabbitmq:3.13-management ​ # -d 参数:后台运行 Docker 容器 # --name 参数:设置容器名称 # -p 参数:映射端口号&…

2025-03-06 学习记录--C/C++-PTA 习题6-6 使用函数输出一个整数的逆序数

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 二、代码&#xff08;C语言&#xff09;⭐️ #include <stdio.h>int reverse( int number );int main…

力扣132. 分割回文串 II

力扣132. 分割回文串 II 题目 题目解析及思路 题目要求返回将s切割成若干回文串的最少切割次数 对于子串s[j...i]&#xff0c;若为回文串&#xff0c;则问题变为求s[0...j]的最少切割次数 因此可以考虑动态规划 对于问题s[j...i]是否为回文串&#xff0c;若s[i] s[j]则问…