Python 之 Matplotlib 第一个绘图程序和基本方法
文章目录
- 一、第一个 Matplotlib 绘图程序
- 1. Matplotlib 绘图的基本步骤
- 二、Matplotlib 的基本方法
- 1. 图表名称 plt.title()
- 2. x 轴和 y 轴名称
- 3. 设置 x 轴和 y 轴的刻度
- 4. 显示图表 show()
- 5. 图例 legend()
- 6. 图例的图例位置设置
- 7. 显示每条数据的值 x,y 值的位置
一、第一个 Matplotlib 绘图程序
- 与 NumPy 类似,我们可以使用相同的方法查看 Matplotlib 的版本信息。
import matplotlib
matplotlib.__version__
#'2.2.3'
1. Matplotlib 绘图的基本步骤
- (1) 首先导入 Matplotlib 包中的 Pyplot 模块,并以 as 别名的形式简化引入包的名称。
from matplotlib import pyplot as plt
#import matplotlib.pyplot as plt
- (2) 接下来,使用 NumPy 提供的函数 arange() 创建一组数据来绘制图像。
- 引入 numpy 包,我们获取 -50 到 50 之间的 ndarray 对象(由于 arange() 不含终止值,因此,我们需要到 51)。
import numpy as np
x = np.arange(-50,51)
x
#array([-50, -49, -48, -47, -46, -45, -44, -43, -42, -41, -40, -39, -38,
# -37, -36, -35, -34, -33, -32, -31, -30, -29, -28, -27, -26, -25,
# -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12,
# -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1,
# 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
# 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
# 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
# 41, 42, 43, 44, 45, 46, 47, 48, 49, 50])
- (3) 上述所得 x 的值作用到 x 轴上,而该值对应的平方值,也就是 y 值,使用以下方式获取。
y = x **2
y
#array([2500, 2401, 2304, 2209, 2116, 2025, 1936, 1849, 1764, 1681, 1600,
# 1521, 1444, 1369, 1296, 1225, 1156, 1089, 1024, 961, 900, 841,
# 784, 729, 676, 625, 576, 529, 484, 441, 400, 361, 324,
# 289, 256, 225, 196, 169, 144, 121, 100, 81, 64, 49,
# 36, 25, 16, 9, 4, 1, 0, 1, 4, 9, 16,
# 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225,
# 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676,
# 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369,
# 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304,
# 2401, 2500], dtype=int32)
- (4) 使用 plt 的 plot() 函数对 x、y 进行绘制。
plt.plot(x,y)

二、Matplotlib 的基本方法
| 方法名 | 说明 |
|---|---|
| title() | 设置图表的名称 |
| xlabel() | 设置x轴名称 |
| ylabel() | 设置y轴名称 |
| xticks(ticks,label,rotation) | 设置x轴的刻度,rotation旋转角度 |
| yticks() | 设置y轴的刻度 |
| show() | 显示图表 |
| legend() | 显示图例 |
| text(x,y,text) | 显示每条数据的值 x,y值的位置 |
1. 图表名称 plt.title()
- x 轴获得 -50 到 50 之间的 ndarray 对象(由于 arange() 不含终止值,因此,我们需要到 51),y 轴的值是 x 轴的平方。
- 然后,我们将图表的名称设置为 y= x^2,最后绘制图形即可。
import numpy as np
x = np.arange(-50,51)
y = x **2
plt.title("y= x^2")
plt.plot(x,y)

- 那么,我们是否可以将标题写为中文呢?
plt.title("y等于x的平方-")
plt.plot(x,y)

- 会发现图表标题跟我们想象中的不太一样,这是因为默认不支持中文:missing from current font 字体丢失造成的。
- 因此,我们可以通过如下代码修改字体配置。
plt.rcParams["font.sans-serif"]
- 字体说明详见下表。
| 中文字体 | 说明 |
|---|---|
| ‘SimHei’ | 中文黑体 |
| ‘Kaiti’ | 中文楷体 |
| ‘LiSu’ | 中文隶书 |
| ‘FangSong’ | 中文仿宋 |
| ‘YouYuan’ | 中文幼圆 |
| STSong | 华文宋体 |
- 我们可以使用我们需要的中文信息进行图表标题的临时配置,就可以成功完成我们的需求了。
plt.rcParams['font.sans-serif'] = ["FangSong"]
plt.title("y等于x的平方--")
plt.plot(x,y)

- 这里我们需要注意的是,在字体设置的过程中,字体名称是不区别大小写的。
- 因此,我们在尝试下别的字体。
plt.rcParams['font.sans-serif'] = ["SimHei"]
plt.title("y等于x的平方")
plt.plot(x,y)

- 但是通过上述的图表当中,我们又会发现,当我们设置了中文字体后,坐标轴的负数又没办法正确显示了。
- 对此,我们可以创建 x 为 -10 到 10 的整数,y 是 x 的平方。
import numpy as np
x = np.arange(-10,11)
y = x ** 2
plt.plot(x, y)

- 这里我们需要注意的是,当我们的字体设置支持中文后,必须设置负号,否则当数值中出现负值时,负号就无法正常显示。
- 对此,我们可以通过修改坐标轴中的负号编码进行解决。我们可以创建 x 为 -10 到 10 的整数,y 是 x 的平方,并设置标题,用以对比观察。
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(-10,11)
y = x ** 2
plt.title('y=x^2 x取值范围为:[-10,10)')
plt.plot(x, y)

- 对上述的字体问题进行总结可得:如果我们想要在标题当中显示中文,就需要修改 2 个配置信息:
- (1) plt.rcParams[‘font.sans-serif’]=[‘SimHei’] ,用来设置字体样式以正常显示中文标签。
- (2) plt.rcParams[‘axes.unicode_minus’]=False ,默认是使用 Unicode 负号,设置正常显示字符。
2. x 轴和 y 轴名称
- x 轴的名称通过 xlabel() 进行设置。
- y 轴的名称通过 ylabel() 进行设置。
- 对此,我们创建一个 x 为 -10 到 10 的整数,y 是 x 的平方的数组,并将其标题设置为 y=x^2 x取值范围为:[-10,10),将 x 轴的名称设置为 x 轴,y 轴的名称设置为 y 轴。
x = np.arange(-10,10)
y = x ** 2
plt.title('y=x^2 x取值范围为:[-10,10)')
plt.xlabel("x 轴")
plt.ylabel("y 轴")
plt.plot(x, y)

- 对于上面的图,如果我们觉得字体偏小或线条太细,可以设置标签文字大小和线条粗细。
- (1) 通过 fontsize 参数,设置文字大小。
- (2) 通过 linewidth 参数,设置线条粗细。
- 为了便于与上述图表当中的字体和线条进行比对,我们便创建与上述完全相同的数组(一个 x 为 10 到 10 的整数,y 是 x 的平方的数组,并将其标题设置为 y=x^2 x取值范围为:[-10,10),将 x 轴的名称设置为 x 轴,y 轴的名称设置为 y 轴),并使用 fontsize 参数将文字大小设置为 12,使用 linewidth 参数将线条宽度设置为 5。
x = np.arange(-10,10)
y = x ** 2
plt.title('y=x^2 x取值范围为:[-10,10)',fontsize=16)
plt.xlabel("x 轴",fontsize=12)
plt.ylabel("y 轴")
plt.plot(x, y,linewidth=5)

- 我们也可以在一个图表当中,设置两种线条宽度。
plt.plot(x, y,linewidth=1)
plt.plot(x, y,linewidth=5)

- 运行结束上面代码后,除了线条变化外,我们发现可以在一张图片中绘制多个线条。
- 对此,我们创建一个 x 为 10 到 10 的整数,y1 是 x 的平方的数组,y2 就等于 x,并将其标题设置为 y=x^2 x取值范围为:[-10,10),同时,标题的文字大小设置为 16,将 x 轴的名称设置为 x 轴,使用 fontsize 参数将文字大小设置为 12,y 轴的名称设置为 y 轴。
x = np.arange(-10,11)
y1 = x ** 2
y2 = x
plt.title('y=x^2 x取值范围为:[-10,10)',fontsize=16)
plt.xlabel("x 轴",fontsize=12)
plt.ylabel("y 轴")
plt.plot(x, y1)
plt.plot(x, y2)

3. 设置 x 轴和 y 轴的刻度
- 我们可以通过 matplotlib.pyplot.xticks(ticks=None, labels=None, **kwargs) 设置 x 轴的刻度。
- 我们可以通过 matplotlib.pyplot.yticks(ticks=None, labels=None, **kwargs) 设置 y 轴的刻度。
- 其中参数具有如下含义:
- ticks:此参数是 xtick 位置的列表,是一个可选参数。如果将一个空列表作为参数传递,则它将删除所有 xticks。
- label:此参数包含放置在给定刻度线位置的标签,它是一个可选参数。
- **kwargs:此参数是文本属性,用于控制标签的外观,例如:
- rotation 表示旋转角度,例如:rotation=45。
- color表示颜色,例如:color=“red”。
- 那么,xticks 到底有什么用呢?
- 其实就是把坐标轴变成我们想要的样子。
- 例如,我们将 x 轴设置为时间,y 轴设置为销量,x 轴具体数据使用 np.arange() 生成,y 轴具体数据使用 np.random.randint() 生成。
times = np.arange(1990,2020).astype(np.str_)
sales = np.random.randint(500,2000,size=len(times))
plt.xticks(range(0,len(times),2),['%s年'%i for i in times],rotation=45)
plt.plot(times,sales)

上述图表,就是每个时间点的销量绘图,如果 x 轴的数据是字符串,那么就会将数据全部展示(y 轴销售量数据仍通过 np.random.randint() 生成)。
times = ['2015/6/26', '2015/8/1', '2015/9/6', '2015/10/12', '2015/11/17','2015/12/23','2016/1/28','2016/3/4','2016/4/9',
'2016/5/15','2016/6/20','2016/7/26','2016/8/31','2016/10/6','2016/11/11','2016/12/17']
sales =np.random.randint(500,2000,size=len(times))
plt.plot(times,sales)

- 显而易见,在上述图形当中,x 轴存在一个问题。
- 如果我们只想显示部分时间,或者按照某个规则展示,应该如何处理呢?
- 这个时候我们就需要用到 xticks。
plt.xticks(range(0,len(times),2))
plt.plot(times,sales)

- 通过设置,时间虽然少了,但是如果我们可以让横坐标中的字体倾斜,就可以避免 x 轴坐标刻度重叠。而其中,xticks 第一个参数中元素的值,代表原始数据的索引。
plt.xticks(range(0,len(times),2),labels=['日期:%s'%i for i in times], rotation=45, color='red')
plt.plot(times,sales)

4. 显示图表 show()
- show() 可以用来显示所有打开的图形。
- 在 jupyter notebooks 当中,会自动显示图形。
- 如果我们想在 jupyter 中出现图形操作菜单,可以使用 matplotlib 中的魔术方法 %matplotlib notebook 即可。
%matplotlib notebook
- 之后在运行图表生成代码就会得到如下结果。
plt.xticks(range(1,len(times),2),rotation=45)
plt.plot(times,sales)

- 如果我们想要返回原先的展示,,用另一个 matplotlib 中的魔术方法 %matplotlib inline 即可。
%matplotlib inline
plt.xticks(range(1,len(times),2),rotation=45)
plt.plot(times,sales)

5. 图例 legend()
- 图例 legend() 是集中于地图一角或一侧的地图上各种符号和颜色所代表内容与指标的说明,有助于更好的认识地图。

- 对此,我们以上述数组为例,进行图例的设置,一个是收入,另一个是支出,均通过 np.random.randint() 进行数据的生成。
- 需要注意的是,在使用图例前需要为每个图形设置 label 参数,默认会使用每个图形的 label 值作为图例中的说明。
times = ['2015/6/26', '2015/8/1', '2015/9/6', '2015/10/12', '2015/11/17','2015/12/23','2016/1/28','2016/3/4','2016/4/9',
'2016/5/15','2016/6/20','2016/7/26','2016/8/31','2016/10/6','2016/11/11','2016/12/17']
income =np.random.randint(500,2000,size=len(times))
expenses =np.random.randint(300,1500,size=len(times))
plt.xticks(range(1,len(times),2),rotation=45)
plt.plot(times,income,label="收入")
plt.plot(times,expenses,label="支出")
plt.legend()

6. 图例的图例位置设置
- loc 代表了图例在整个坐标轴平面中的位置(一般选取 ‘best’ 这个参数值)。
- 第一种情况默认是 “best”,图例自动‘安家’在一个坐标面内的数据图表最少的位置。
- 第二种情况 loc = ‘XXX’ 分别有 0:‘best’ (自动寻找最好的位置)。
| 位置字符串 | 位置值 | 备注 |
|---|---|---|
| “best” | 0 | 自动寻找最好的位置 |
| “upper right” | 1 | 右上角 |
| “upper left” | 2 | 左上角 |
| “lower left” | 3 | 左下角 |
| “lower right” | 4 | 右下角 |
| “right” | 5 | 右边中间 |
| “center left” | 6 | 左边中间 |
| “center right” | 7 | 右边中间 |
| “lower center” | 8 | 中间最下面 |
| “upper center” | 9 | 中间最上面 |
| “center” | 10 | 正中心 |
- 对此,我们以上述数组为例,进行图例的设置,一个是收入,另一个是支出,均通过 np.random.randint() 进行数据的生成。
- 需要注意的是,在使用图例前需要为每个图形设置 label 参数,默认会使用每个图形的 label 值作为图例中的说明。
- 我们将图例放到整体的左上角。
times = ['2015/6/26', '2015/8/1', '2015/9/6', '2015/10/12', '2015/11/17','2015/12/23','2016/1/28','2016/3/4','2016/4/9',
'2016/5/15','2016/6/20','2016/7/26','2016/8/31','2016/10/6','2016/11/11','2016/12/17']
income =np.random.randint(500,2000,size=len(times))
expenses =np.random.randint(300,1500,size=len(times))
plt.xticks(range(1,len(times),2),rotation=45)
plt.plot(times,income,label="收入")
plt.plot(times,expenses,label="支出")
plt.legend(loc="upper left")

7. 显示每条数据的值 x,y 值的位置
- 通过如下代码进行实现。
plt.text(x,y, string, fontsize=15, verticalalignment="top", horizontalalignment="right")
- 其中参数具有如下含义:
- x,y 表示的是坐标值上的值。
- string 表示说明文字。
- fontsize 表示字体大小。
- verticalalignment:(va)垂直对齐方式 ,参数:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ]。
- horizontalalignment:(ha)水平对齐方式 ,参数:[ ‘center’ | ‘right’ | ‘left’ ]。
- 对此,我们以上述数组为例,进行图例的设置,一个是收入,另一个是支出,均通过 np.random.randint() 进行数据的生成。
- 需要注意的是,在使用图例前需要为每个图形设置 label 参数,默认会使用每个图形的 label 值作为图例中的说明,图例放到整体的左上角。
- 将每个数据的 y 值(也就是收入和支出)显示出来。
times = ['2015/6/26', '2015/8/1', '2015/9/6', '2015/10/12', '2015/11/17','2015/12/23','2016/1/28','2016/3/4','2016/4/9',
'2016/5/15','2016/6/20','2016/7/26','2016/8/31','2016/10/6','2016/11/11','2016/12/17']
income =np.random.randint(500,2000,size=len(times))
expenses =np.random.randint(300,1500,size=len(times))
plt.xticks(range(1,len(times),2),rotation=45)
plt.plot(times,income,label="收入")
plt.plot(times,expenses,label="支出")
plt.legend(loc="upper left")
for x,y in zip(times,income):plt.text(x,y,'%s万'%y)

相关文章:
Python 之 Matplotlib 第一个绘图程序和基本方法
文章目录一、第一个 Matplotlib 绘图程序1. Matplotlib 绘图的基本步骤二、Matplotlib 的基本方法1. 图表名称 plt.title()2. x 轴和 y 轴名称3. 设置 x 轴和 y 轴的刻度4. 显示图表 show()5. 图例 legend()6. 图例的图例位置设置7. 显示每条数据的值 x,y 值的位置一、第一个 M…...
数据结构与算法(一):概述
数据结构学了有一年左右的时间了,但是一直没有详细地总结一下,现在回想起来,感觉有些内容忘记了。所以接下来一段时间我将重新归纳总结一下,算是温故而知新了。 一、数据结构 1、定义 数据结构是计算机存储、组织数据的方式。在…...
Spring3之Bean的属性详解
简介 Spring 中大量使用到 Bean 的注入来实现各个模块之间的依赖,本章将详细介绍 Bean 的主要属性 id 和 name 属性 每个 Bean 可以有一个 id 属性,并可以根据该 id 在 IoC 容器中查找该 Bean,该 id 属性值必须在IoC 容器中唯一 可以不指定…...
C语言之结构体内存的计算
结构体的内存 一.提出疑问 结构体占用的是一片连续的内存空间,大小是由成员变量的类型决定的。但并不是计算所有成员变量的类型大小之和那么简单。 先举一个实例: struct student {int age; //4个字节int telephone; //4个字节 }; int main() {struc…...
Java网络编程之UDP和TCP套接字
文章目录一. 网络编程概述二. UDP网络编程1. UDP套接字2. UDP客户端回显服务器程序2.1 UDP回显服务器2.2 UDP客户端2.3 UDP实现查词典的服务器三. TCP网络编程1. TCP套接字2. TCP客户端回显服务器程序2.1 TCP回显服务器2.2 TCP客户端2.3 解决服务器无法同时出力多个客户端的问题…...
Linux进程信号产生以及捕捉
一.什么是信号 生活中,有哪些信号相关的场景呢,比如:红绿灯,闹钟,转向灯等等 1.这里我们要知道,你为什么认识这些信号呢,记住了对应场景下的信号+后续是有”动作“要你执行的 2.我们…...
11. GLSL(OpenGL Shader Language)常用知识点汇总
1. 说明: 在使用OPenGL进行三维模型渲染时,需要使用到两个着色器对模型进行位置设置和颜色设置,分别为顶点着色器和片段着色器,这两个着色器是使用 GLSL 语法进行编写的。这篇文章总结了一些GLSL中的一些基本语法知识。 2. 基本…...
转发一张网络工程师考试的试卷2021.5.15
网络工程师考试 单选题 (30题,每题1分,共30分) 1. 你在一个网络中实现DHCP服务,配置一些计算机成为DHCP客户端,由于工作需要,一台系统为Windows 10 的客户端要把从DHCP服务器获得的地址释放&a…...
AMD发布23.2.1 新驱动 支持开年新作《魔咒之地》
如果说2023年有什么新作,《魔咒之地(Forspoken)》当属开年大作之一,1月25日才在steam平台发售。虽然开售后的表现似乎不如想象中优秀,加之价格相对昂贵,令不少玩家望而却步,但如果只是想尝鲜&am…...
开放平台如何做接口的签名和加解密?
目录安全性功能介绍实现流程开放平台依赖代码AES加解密工具类PlatformConfigRequestUtilsPlatformServiceCommonCodeZuulFilterHelperServerResponsePlatformContactRsaSignatureRsaUtilsStreamUtil开放平台-解密过滤器开放平台-加密过滤器调用方代码公共代码Get-DemoPost-Demo…...
Mr. Cappuccino的第40杯咖啡——Kubernetes之Pod生命周期
Kubernetes之Pod生命周期Pod生命周期官方文档Pod的状态初始化容器案例钩子函数Exec命令TCPSocketHTTPGet案例容器探测Exec命令TCPSocketHTTPGet探测时间重启策略Pod生命周期官方文档 Pod生命周期官方文档 Pod的状态 pending:挂起,apiserver创建了pod资…...
记一次OOM
1,问题描述: 新上了一版代码之后,上游服务请求我们服务失败,报错:“服务不可用”,发现注册中心上服务掉线,查询日志:发现oom:Java heap space,GC overhead limit exceeded。 容易…...
idea插件生成dao类service类controller类以及mapper.xml
idea插件生成dao类service类controller类以及mapper.xml 安装插件Easycode和MybatisX,不用自己写代码 1.Files——》Settings——》Plugins,分别搜索Easycode和MybatisX,点击下载。 2.新建一个springboot模板,选择的依赖如下 3.…...
DML 数据操作语言
概述 DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。 添加数据(INSERT)修改数据(UPDATE)删除数据(DELETE) 添加数据 1、给指定字段…...
PySpark实战一之入门
1、PySpark的编程模型 分三个模块: 数据输入:通过SparkContext对象,完成数据输入 数据处理计算:输入数据后得到RDD对象,对RDD对象的成员方法进行迭代计算 数据输出:最后通过RDD对象的成员方法࿰…...
【DockerCE】Docker-CE 23.0.1正式版发布
很意外啊!Docker社区版竟然直接从20.xx.xx版本,升级到23.xx.xx版本了。官网地址(For RHEL/CentOS 7.9):https://download.docker.com/linux/centos/7/x86_64/stable/Packages/23.0.1版本官方安装包如下:# l…...
vscode开发的Vue家用电器维修服务系统nodejs+mysql
主要功能包括管理员:首页、个人中心、用户管理、维修员管理、维修信息管理、维修申请管理、维修处理管理、家电类别管理、配件信息管理、配件领用管理、维修结果管理、家电维修知识管理、公告信息管理、留言板管理,用户:首页、个人中心、维修…...
PyQt5数据库开发1 4.2 配置SQL Server 2008 数据源(ODBC编程)
文章目录 配置SQL Server 2008 数据源(ODBC编程) 1. 了解要配置的数据源服务器名称,以及数据库和对应表 2. 打开控制面板,点击管理工具 3. 双击数据源 4. 选择“用户DSN”选项卡,点击“添加” 5. 选择SQL Serv…...
【JavaEE】多线程代码实例:单例模式与阻塞队列BlockingQueue
目录 单例模式: 什么是单例模式? 单例模式的实现方式: 饿汉模式: 懒汉模式: 基于并发编程对单例模式线程安全问题的讨论: 阻塞队列: 标准库中的阻塞队列: 自实现阻塞…...
算法思想 - 搜索算法
本文主要介绍算法中搜索算法的思想,主要包含BFS,DFS。搜索相关题目深度优先搜索和广度优先搜索广泛运用于树和图中,但是它们的应用远远不止如此。BFS广度优先搜索的搜索过程有点像一层一层地进行遍历,每层遍历都以上一层遍历的结果…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
