当前位置: 首页 > news >正文

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

在数据爆炸的时代,数据可视化已成为数据分析的关键环节。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 值进行颜色映射。

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

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

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

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

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

相关文章:

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

在数据爆炸的时代,数据可视化已成为数据分析的关键环节。Python 作为强大的编程语言,拥有众多用于数据可视化的库,而 pandas 库在其中扮演着重要角色。它不仅能高效处理和分析数据,还具备强大的数据可视化功能,让我们轻…...

私有云基础架构与运维(二)

二.私有云基础架构 【项目概述】 经过云计算基础知识及核心技术的学习后,希望进一步了解 IT 基础架构的演变过 程,通过学习传统架构、集群架构以及私有云基础架构的相关知识,认识企业从传统 IT 基 础架构到私有云基础架构转型的必要性。…...

Java Maven 项目问题:org.dom4j:dom4j:pom:2.1.3 failed to transfer from...

问题与处理策略 问题描述 IDEA 中打开一个 Java 项目,使用 Maven 构建时,报如下错误 org.dom4j:dom4j:pom:2.1.3 failed to transfer from https://repo.maven.apache.org/maven2 during a previous attempt. This failure was cached in the local r…...

DeepSeek group-limited expert routing和负载均衡

Ref https://github.com/deepseek-ai/DeepSeek-V3/blob/main/inference/model.py GitHub - deepseek-ai/EPLB: Expert Parallelism Load Balancer DeepSeek-V3 Technical Report DeepSeek的路由方法 class Gate(nn.Module):def __init__(self, args: ModelArgs):super().__…...

nvidia驱动升级-ubuntu 1804

升级 1.从官网下载*.run驱动文件 2.卸载原始驱动 sudo /usr/bin/nvidia-uninstall sudo apt-get --purge remove nvidia-\* # 可能不需要加-\ sudo apt-get purge nvidia-\* # 可能不需要加-\ sudo apt-get purge libnvidia-\* # 可能不需要…...

金融合规测试:金融系统稳健运行的“定海神针“

一、什么是金融合规测试? 金融行业是受监管最严格的领域之一,各国政府和监管机构(如中国人民银行、银保监会、证监会、美国SEC、欧盟ESMA等)都制定了严格的法律法规,要求金融机构确保系统安全、交易透明、公平竞争&am…...

[Windows] 多系统键鼠共享工具 轻松跨系统控制多台电脑

参考原文:[Windows] 多系统键鼠共享工具 轻松跨系统控制多台电脑 还在为多台电脑需要多套键盘鼠标而烦恼吗?是不是在操控 Windows、macOS、Linux 不同系统电脑时手忙脚乱?现在,这些问题通通能解决!Deskflow 软件闪亮登…...

vue3 组合式API:透传 Attributes(v-bing与:)—setup() 上下文对象ctx.attrs

一、概念及举例说明透传 attribute与模板语法中的Attribute(v-bind) 透传 attribute:传递给一个组件没有通过 props 与 emits 的attribute或者v-on事件监听(常见的:calss、style、id) 举例:当一个组件以单个元素为根元素渲染时,透传 attribute 会自动被添加到根元素上 …...

记录一次利用条件索引优化接口性能的实践

一、业务背景 某表数据量达到4000w,需要每天定时任务处理20w条。前2周内SQL执行无任何问题,非常快,效率比较高。随着处理完的数据量变大,处理完数据状态设置为1,SQL执行效率越来越差,已经达到了惊人的4.6秒…...

Anaconda 部署 DeepSeek

可以通过 Anaconda 环境部署 DeepSeek 模型,但需结合 PyTorch 或 TensorFlow 等深度学习框架,并手动配置依赖项。 一、Anaconda 部署 DeepSeek 1. 创建并激活 Conda 环境 conda create -n deepseek python3.10 # 推荐 Python 3.8-3.10 conda activate…...

MATLAB中lookAheadBoundary函数用法

目录 语法 说明 示例 匹配指定模式之前的位置 匹配指定模式之前的边界以外的边界 lookAheadBoundary函数的功能是匹配指定模式之前的边界。 语法 newpat lookAheadBoundary(pat) 说明 newpat lookAheadBoundary(pat) 创建匹配 pat 的开头的模式。结果中不包含 pat 匹…...

Unity HDR颜色、基础颜色、强度强度、HDR面板Intensity之间的相互转换

目录 前言: 一、UnityHDR面板的规律 二、HDR与基础颜色转换,HDR强度获取,输入设置强度获取 1.基础色->HDR颜色 2.HDR颜色->基础色 3.获取HDR颜色在面板中的强度 4.获取HDR颜色在面板设置输入时的强度 前言: HDR&#…...

nvm 让 Node.js 版本切换更灵活

有很多小伙伴前端开发进程中,我们常常会遇到不同项目依赖不同版本 Node.js 的情况。我们不可能去卸载重新安装适应的版本去安装依赖或者启动项目。为了避免版本冲突带来的一系列麻烦,在这里给大家推荐一款Node.js 版本管理工具——nvm(Node V…...

微机惊魂记

春天午后的阳光懒洋洋地洒在教学楼的走廊上,我跟着同学们排着队往四楼的微机教室走去。楼梯间的窗户开着,飘进来阵阵樱花的香气,让人昏昏欲睡。 微机教室在一栋普通的五层教学楼里,墙壁刷着淡绿色的漆,墙角还有些剥落…...

Windows下安装VMware Workstation 17并设置支持MacOS

VMware Workstation 17 介绍 VMware Workstation 17 是 VMware 公司推出的一款强大的桌面虚拟化软件,适用于 Windows 、 Linux 和FreeBSD等操作系统。它允许用户在单一物理计算机上创建、运行和管理多个虚拟机(VM),每个虚拟机都可…...

[MySQL初阶]MySQL(5)内置函数详解

标题:[MySQL初阶]MySQL(5)内置函数详解 水墨不写bug 文章目录 一、日期函数1. current_date()2. current_time()3. current_timestamp()4. date(datetime)5. date_add(date, interval expr unit)6. date_sub(date, interval expr unit)7. dat…...

Linux下安装elasticsearch(Elasticsearch 7.17.23)

Elasticsearch 是一个分布式的搜索和分析引擎,能够以近乎实时的速度存储、搜索和分析大量数据。它被广泛应用于日志分析、全文搜索、应用程序监控等场景。 本文将带你一步步在 Linux 系统上安装 Elasticsearch 7.17.23 版本,并完成基本的配置&#xff0…...

华为云 | 快速搭建DeepSeek推理系统

DeepSeek(深度求索)作为一款国产AI大模型,凭借其高性能、低成本和多模态融合能力,在人工智能领域崛起,并在多个行业中展现出广泛的应用潜力。 如上所示,在华为云解决方案实践中,华为云提供的快速…...

宠物医院台账怎么做,兽医电子处方单模板打印样式,佳易王兽医兽药开方宠物病历填写打印操作教程

一、概述 本实例以佳易王兽医宠物电子处方开单系统版本为例说明,其他版本可参考本实例。试用版软件资源可到文章最后了解,下载的文件为压缩包文件,请使用免费版的解压工具解压即可试用。 软件特点: 多场景处方兼容性针对宠物医…...

STM32之DMA

Flash是主闪存,下载程序的地方,系统存储器出厂自动写入,不许修改。系统存储器是存储Bootloader,选项字节存的是flash的读保护,写保护,还有看门狗等。运行内存SRAM存的临时变量,也就是程序中定义…...

用低代码平台集成人工智能:无需专业开发也能实现智能化

引言:人工智能的普及与企业需求 随着人工智能(AI)技术的飞速发展,越来越多的企业开始意识到其在提升运营效率、优化客户体验和推动业务创新方面的巨大潜力。从智能客服到自动化决策支持,从数据分析到个性化推荐&#x…...

UI自动化:利用百度ocr识别解决图形验证码登录问题

相信大家在做自动化测试过程中都遇到过图形验证码的问题,最近我也是遇到了,网上搜了很多方法,最简单的方法无非就是去掉图形验证码或者设置一个万能验证码,但是这个都需要开发来帮忙解决,对于我们这种自学的人来说就不…...

1236 - 二分查找

题目描述 请在一个有序递增数组中(不存在相同元素),采用二分查找,找出值 xx 的位置,如果 xx 在数组中不存在,请输出 -1 ! 输入 第一行,一个整数 nn ,代表数组元素个数…...

MARL零样本协调之Fictitious Co-Play学习笔记

下列引用来自知乎作者Algernon 知乎link FCP作为ZSC领域两阶段训练方法的开创者 论文《Collaborating with Humans without Human Data》来自 NeurIPS 2021。这篇论文提出 Fictitious Co-Play (FCP) 来解决 ZSC 问题。论文认为,ZSC 的第一个重要问题是对称性&#x…...

设计模式 + java8方法引用 实现任意表的过滤器

会用到下面2个依赖&#xff0c;原因是在今天的案例中&#xff0c;我想在我代码中使用上Entity::getFieldName 这种形式 LambdaQueryWrapper<ApplicationDashboard> queryWrapper new LambdaQueryWrapper<>(); queryWrapper.eq(ApplicationDashboard::getAppCode,…...

thingsboard edge 在windows 环境下的配置

按照官方文档&#xff1a;Installing ThingsBoard Edge on Windows | ThingsBoard Edge&#xff0c;配置好java环境和PostgreSQL。 下载对应的windows 环境下的tb-edge安装包。下载附件 接下来操作具体如下 步骤1&#xff0c;需要先在thingsboard 服务上开启edge 权限 步骤2…...

OpenAI Whisper:开启语音转文本的智能时代

在人工智能技术飞速发展的今天,OpenAI推出的Whisper语音识别系统正悄然改变着人类与机器的交互方式。作为一款开源的AI驱动语音转文本工具,Whisper凭借其跨语言能力、高精度识别和灵活的生态系统,成为开发者和普通用户共同追捧的技术标杆。 核心技术与突破 Whisper基于深度…...

OpenHarmony4.0_Linux环境搭建

查看链接&#xff1a;OpenHarmony4.0_Linux环境搭建https://www.yuque.com/xinzaigeek/jishu/fs9msruqhd5nhw4i...

道可云人工智能每日资讯|亚马逊云业务部门成立智能体人工智能团队

道可云元宇宙每日简报&#xff08;2025年3月6日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 《杭州市富阳区未来产业培育行动计划(2025-2026年)》发布 3月3日&#xff0c;杭州市富阳区经信局正式发布了《杭州市富阳区未来产业培育行动计划(2025-2026年)》&…...

Java-servlet(四)详细讲解Servlet类层次结构与生命周期

Java-servlet&#xff08;四&#xff09;详细讲解Servlet和生命周期 前言一、Servlet类层次结构1.Servlet包2.Servlet 与 ServletConfig 与 Serializable 的关系1. 三者分别是什么2. 三者之间的关系 3.如何让类具有 Servlet 功能 二、Servlet 生命周期1.初始化阶段2.服务阶段3.…...

python基础课程整理--字典的基础

字典的特点 定义&#xff1a;使用花括号 {} 包裹&#xff0c;存储键值对&#xff08;key-value pairs&#xff09;。特点&#xff1a; 无序&#xff1a;字典中的元素没有固定的顺序&#xff0c;但可以通过键来访问。可变&#xff1a;字典中的键值对可以被添加、修改或删除。键…...

doris: MySQL

Doris JDBC Catalog 支持通过标准 JDBC 接口连接 MySQL 数据库。本文档介绍如何配置 MySQL 数据库连接。 使用须知​ 要连接到 MySQL 数据库&#xff0c;您需要 MySQL 5.7, 8.0 或更高版本 MySQL 数据库的 JDBC 驱动程序&#xff0c;您可以从 Maven 仓库下载最新或指定版本的…...

推荐一个基于Koin, Ktor Paging等组件的KMM Compose Multiplatform项目

Kotlin Multiplatform Mobile&#xff08;KMM&#xff09;已经从一个雄心勃勃的想法发展成为一个稳定而强大的框架&#xff0c;为开发人员提供了在多个平台上无缝共享代码的能力。通过最近的稳定版本里程碑&#xff0c;KMM已成为跨平台开发领域的改变者。 环境设置 带有Kotli…...

Tomcat 新手入门指南

Tomcat 新手入门指南 Apache Tomcat 是一个开源的 Java Servlet 容器和 Web 服务器&#xff0c;广泛用于部署和运行 Java Web 应用程序。以下是 Tomcat 的入门指南&#xff0c;帮助你快速上手。 1. 安装 Tomcat 步骤 1: 下载 Tomcat 访问 Apache Tomcat 官网。选择适合的版…...

游戏引擎学习第138天

仓库:https://gitee.com/mrxiao_com/2d_game_3 资产&#xff1a;game_hero_test_assets_003.zip 发布 我们的目标是展示游戏运行时的完整过程&#xff0c;从像素渲染到不使用GPU的方式&#xff0c;我们自己编写了渲染器并完成了所有的工作。今天我们开始了一些新的内容&#…...

c++ 类特殊成员函数的编译器隐式声明规则

c 类特殊成员函数的编译器隐式声明规则 特殊成员函数编译器隐式声明规则关键术语说明&#xff1a;核心规则总结&#xff1a;示例场景&#xff1a; 特殊成员函数 编译器隐式声明规则 用户声明的成员函数默认构造函数析构函数拷贝构造函数拷贝赋值移动构造函数移动赋值无声明默…...

综合使用pandas、numpy、matplotlib、seaborn库做数据分析、挖掘、可视化项目

目录 1.结构化数据挖掘 1.1依赖库导入和数据读取 1.2各品牌机型及售价统计 1.3视频录制规格与价格关联性分析 2.结构化数据预处理 2.1筛选特征 2.2特征标签归一化及编码 1.结构化数据挖掘 1.1依赖库导入和数据读取 导入必要的依赖库&#xff0c;读取 csv 格式数据集转化为 Data…...

day21-API(算法,lambda,练习)

常见的七种查找算法&#xff1a; ​ 数据结构是数据存储的方式&#xff0c;算法是数据计算的方式。所以在开发中&#xff0c;算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词&#xff0c;如果各位铁粉有疑惑&#xff0c;可以先看一下哥们后面录制的数据结构…...

Linux : 进程地址空间

目录 一 前言 二 进程地址空间是什么 1.现象 2.虚拟地址空间 3. 现象解释 4. 写时拷贝 三 为什么要存在进程地址空间 四 进程地址空间是如何实现的 1 操作系统如何管理进程地址空间 一 前言 进程地址空间图&#xff1a; 在学习C语言的内存管理的时候&#xff0c;我…...

wordpress鼠标特效笔记+npm问题解决

在WordPress网站上添加鼠标点击特效和网页背景特效_wordpress鼠标特效-CSDN博客 学习设置文章浏览量的插件超详细图解&#xff1a;如何使用 WordPress搭建一个个人博客&#xff1f;-CSDN博客 ------------------2025.03.06------------------------------- npm 运行时报错“因…...

大模型——使用 Embedding 模型和向量数据库的 Spring AI RAG

大模型——使用 Embedding 模型和向量数据库的 Spring AI RAG 本文主要介绍以下内容: 嵌入式模型简介。使用 DocumentReader 加载数据。在 VectorStore 中存储 Embedding。实现 RAG(Retrieval-Augmented Generation,检索增强生成),又名 Prompt Stuffing。你可以在 GitHub…...

Spring Boot 缓存最佳实践:从基础到生产的完整指南

Spring Boot 缓存最佳实践&#xff1a;从基础到生产的完整指南 引言 在现代分布式系统中&#xff0c;缓存是提升系统性能的银弹。Spring Boot 通过 spring-boot-starter-cache​ 模块提供了开箱即用的缓存抽象&#xff0c;但如何根据业务需求实现灵活、可靠的缓存方案&#xf…...

vue3,Element Plus中隐藏树el-tree滚动条

el-tree&#xff0c;节点过多&#xff0c;默认会出现垂直滚动条&#xff0c;显得不美观 可以使用隐藏组件 el-scrollbar 将 el-tree 包裹&#xff0c;就可以隐藏垂直滚动条 <el-scrollbar> <el-tree> ... </el-tree> </el-scrollbar> /* 滚动条禁用鼠…...

《机器学习数学基础》补充资料:过渡矩阵和坐标变换推导

尽管《机器学习数学基础》这本书&#xff0c;耗费了比较长的时间和精力&#xff0c;怎奈学识有限&#xff0c;错误难免。因此&#xff0c;除了在专门的网页&#xff08; 勘误和修订 &#xff09;中发布勘误和修订内容之外&#xff0c;对于重大错误&#xff0c;我还会以专题的形…...

掌握高效大模型任务流搭建术(二):链式流程如何赋能 AI 处理能力提升

前言&#xff1a; 在上一篇文章中&#xff0c;我们初步探索了 LangChain 的基础链式操作——LLMChain。它巧妙地将大语言模型&#xff08;LLM&#xff09;与提示模板&#xff08;Prompt Template&#xff09;相结合&#xff0c;为模型交互逻辑的封装提供了一种简洁而高效的方式…...

Linux——Docker容器内MySQL密码忘记了如何查看

目录 查看正在运行的MySQL的容器ID 方法一&#xff1a;查看MySQL容器的日志里的密码 方法二&#xff1a;通过环境变量密码登录 方法三&#xff1a;修改密码 查看正在运行的MySQL的容器ID docker ps 方法一&#xff1a;查看MySQL容器的日志里的密码 docker logs [MySQL的容器…...

深入剖析 Kubernetes 弹性伸缩:HPA 与 Metrics Server

引言 在 Kubernetes (K8s) 集群中&#xff0c;如何根据应用的实际负载自动调整 Pod 数量&#xff0c;实现资源的弹性利用&#xff0c;是保障服务稳定性和成本效益的关键。Horizontal Pod Autoscaler (HPA) 和 Metrics Server 正是实现这一目标的核心组件。本文将深入探讨 HPA …...

Qt5 C++ QMap使用总结

文章目录 功能解释代码使用案例代码解释注意事项代码例子参考 功能解释 QList<T> QMap::values() const Returns a list containing all the values in the map, in ascending order of their keys. If a key is associated with multiple values, all of its values wi…...

如何改变怂怂懦弱的气质(2)

你是否曾经因为害怕失败而逃避选择&#xff1f;是否因为不敢拒绝别人而让自己陷入困境&#xff1f;是否因为过于友善而被人轻视&#xff1f;如果你也曾为这些问题困扰&#xff0c;那么今天的博客就是为你准备的。我们将从行动、拒绝、自我认知、实力提升等多个角度&#xff0c;…...

【CVTE】嵌入式软件开发-Linux方向{一面}

文章目录 数组和链表的区别&#xff1f;特点&#xff1f;使用场景&#xff1f;**1. 数组&#xff08;Array&#xff09;****特点&#xff1a;****使用场景&#xff1a;** **2. 链表&#xff08;Linked List&#xff09;****特点&#xff1a;****使用场景&#xff1a;** **3. 数…...