Python学习笔记(十九)——Matplotlib入门上

news/2024/5/2 13:47:45/文章来源:https://blog.csdn.net/weixin_60535956/article/details/128311973

目录

Matplotlib简介

导入matplotlib模块

 图的参数说明

matplotlib图像组成部分介绍

matplotlib绘图步骤分析

matplotlib实现简单图像

matplotlib画布

画布-plt.figure()

实例

 同一画布制作多张图像

 创建多个子图

实例

plt.subplots

相关参数

调整subplot周围的间距

 实例

plot函数

format_string参数

颜色字符

标记字符

风格字符

 效果图

简单案例

完整案例

更多参数设定

设置标题、轴标签、刻度及刻度标签

实例

注释

matplotlib.pyplot.text()

在图中添加箭头

实例

边框设定

 pyplot文本显示函数

 图例

更多参数设定

同一窗口生成多个图

 不均衡布局

 图的保存

基础图标函数

 散点图

plt.colorbar

柱状图和直方图

 柱状图

 柱状图plt.bar

 柱状图实例

 堆叠柱状图实例

双向柱状图


Matplotlib简介

matplotlibPython2D3D绘图库。
可以处理数学运算、绘制图表,或者在图像上绘制点、直线和曲线。
matplotlib通过pyplot模块提供了和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。
安装matplotlib之前先要安装numpy
matplotlib是开源库,可以从https://matplotlib.org/下载。
最好将输入数据转换为np.array类型
matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发。
matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式。

导入matplotlib模块

import matplotlib.pyplot as plt

 图的参数说明

 axes: 设置坐标轴边界和表面的颜色、坐标刻度值大小和网格的显示
 figure: 控制dpi、边界颜色、图形大小、和子区( subplot)设置font: 字体集(font family)、字体大小和样式设置grid: 设置网格颜色和线性
 legend: 设置图例和其中的文本的显示
 line: 设置线条(颜色、线型、宽度等)和标记patch: 是填充2D空间的图形对象,如多边形和圆。控制线宽、颜色和抗锯齿设置等。
 savefig: 可以对保存的图形进行单独设置。例如,设置渲染的文件的背景为白色
 verbose: 设置matplotlib在执行期间信息输出,如silenthelpfuldebug和debug-annoying。
 xticksyticks: x,y轴的主刻度和次刻度设置颜色、大小、方向,以及标签大小   

matplotlib图像组成部分介绍

matplotlib绘图步骤分析

① 创建窗口、设置子图,每个figure对象是一个图
② 绘制图形plot、设置横纵坐标等参数
③ 图形展示及保存

matplotlib实现简单图像

import matplotlib.pyplot as plt
import numpy as np
# 定义 x 变量的范围 (-3,3) 数量 50
x=np.linspace(-3,3,50)
y=x**2
plt.figure()
plt.plot(x, y)
plt.show()

 

matplotlib画布

画布-plt.figure()

plt.figure(num=None,figsize=None,dpi=None,facecolor=None,edgecolor=None,frameon=True)
num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和高,单位为英寸;
dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cmA4纸是 21*30cm的纸张
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框

实例

import matplotlib.pyplot as plt
fig=plt.figure(num="蓝色背景",figsize=(4,3),facecolor="blue")
plt.show()
fig=plt.figure(num="红色背景",figsize=(4,3),facecolor="red")
plt.show()

 同一画布制作多张图像

① 确定区域
plt.figure().add_subplot(*)
② 制作子图
plt.subplot(*)

 创建多个子图

plt.figure(**). add_subplot(nrows, ncols, index, **kwargs)
plt.figure(**). add_subplot(pos, **kwargs)
子图将采用 nrows * ncols 的网格上的 index 位置
pos 是一个三位整数,其中第一个数字是行数,第二个数字是列数和第三个数字是子图的索引。
例如: plt.figure(**). add_subplot(235)plt.figure(**). add_subplot(2,3,5)等价

实例

import matplotlib.pyplot as plt
fig = plt.figure()
axl = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
plt.show()

import matplotlib.pyplot as plt
fig = plt.figure()
axl = fig.add_subplot(121)
ax2 =fig.add_subplot(122)
ax2.axis(“off”) #不显示第二个子图
plt.show()

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
axl = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
plt.plot(np.random.randn(50).cumsum(), 'k--')
#默认最后一个子图
plt.show()

图像默认绘制在最后一个子图上面

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
ax1.hist(np.random.randn(100), bins=20, color='k', alpha=0.3)
ax2.scatter(np.arange(30), np.arange(30) + 3 * np.random.randn(30))
plt.show()

plt.subplots

matplotlib 有一个更为方便的方法 plt.subplots,它可以创建一个新的 Figure并返回一个含有已创建的 subplot 对象的 NumPy 数组。
>>> fig, axes = plt.subplots(2, 3)
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7fb626374048>,
<matplotlib.axes._subplots.AxesSubplot object at 0x7fb62625db00>,
<matplotlib.axes._subplots.AxesSubplot object at 0x7fb6262f6c88>],
[<matplotlib.axes._subplots.AxesSubplot object at 0x7fb6261a36a0>,
<matplotlib.axes._subplots.AxesSubplot object at 0x7fb626181860>,
<matplotlib.axes._subplots.AxesSubplot object at 0x7fb6260fd4e0>]], dtype
=object)

相关参数

plt.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False,subplot_kw=None, **fig_kw)

参数
说明
nrows
subplot的行数
ncols
subplot的列数
sharex
所有subplot应该使用相同的X轴刻度(调节xlim将会影响所有
subplot)
sharey
所有subplot应该使用相同的Y轴刻度(调节ylim将会影响所有
subplot)
subplot_ kw
用于创建各subplot的关键字字典
**fig_ kw
创建figure时的其他关键字,如plt.subplots(2,2,figsize=(8,6))

调整subplot周围的间距

默认情况下,matplotlib 会在 subplot 外围留下一定的边距,并在 subplot 之间留下一定的间距。间距跟图像的高度和宽度有关,因此,如果你调整了图像大小(不管是编程还是手工),间距也会自动调整。利用 Figure 的 subplots_adjust方法可以轻而易举地修改间距。

plt.subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=None,hspace=None
left:此参数是该图子图的左侧。
right:此参数是该图子图的右侧。
bottom:此参数是该图子图的底部。
top:此参数是该图子图的顶部。
wspace:此参数是为子图之间的空间 保留的宽
度量,表示为平均轴宽度的 一部分。
hspace:此参数是为子图之间的空间保 留的高
度量,表示为平均轴高度的一 部分。
注意这些值都是01之间的值,代表 百分比。

 实例

import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(2, 2, sharex=True, sharey=True)
for i in range(2):
for j in range(2):
axes[i, j].hist(np.random.randn(500))
plt.subplots_adjust(wspace=0.2, hspace= 0)
plt.show()

plot函数

plt.plot(x, y, format_string, **kwargs)

  可以绘制点和线, 并且对其样式进行控制

 tip:当绘制多条曲线时各条曲线的x不能省略

format_string参数

颜色字符

标记字符

风格字符

 效果图

简单案例

单个图像
plt.plot([3,1,2,5,4])
plt.show()

 多个图像

import numpy as np
import matplotlib.pyplot as plt
a=np.arange(10)
plt.plot(a, a*1.5,a, a*2.5, a*3.5)        #横坐标相同
plt.show()

完整案例

import numpy as np
import matplotlib.pyplot as plt
x=np.arange(10)
y1=x*1.5;
y2=x*2.5;
y3=x*3.5;
y4=x*4.5
plt.figure()
plt.plot(x,y1,’go-',x,y2,'rx',y3,'*',x,y4,'b-.’)
plt.show()

更多参数设定

 

设置标题、轴标签、刻度及刻度标签

函数说明
set_title(*)
设定图像的标题
plt.set_xticks(ticks=None, labels=None)
设定X轴数据刻度以及标签
set_xticklabels(*,*)
设定X轴刻度的标签
set_xlabel(*,*)
设定X轴的名称
plt.set_yticks(ticks=None, labels=None)
设定Y轴数据刻度以及标签
set_yticklabels(*,*)
设定Y轴刻度的标签
set_ylabel(*,*)
设定Y轴的名称

实例

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(np.random.randn(1000).cumsum())
ticks = ax.set_xticks([0, 250, 500, 750, 1000])
labels = ax.set_xticklabels(['one', 'two', 'three', 'four', 'five'],rotation=30,
fontsize='small')
ax.set_title('My first matplotlib plot')
plt.show()

注释

matplotlib.pyplot.text()

plt.text(x, y, s, fontdict=None, **kwargs)

 功能用于将文本添加到数据坐标中x,y位置的轴上。

参数描述
xyfloat
放置文本的位置。默认情况下,这是在数据坐标中。
可以使用变换参数来更改坐标系。
sstr
文本。
fontdictdict默认无
用于覆盖默认文本属性的字典。如果fontdictNone
则默认值由rcParams确定。
**夸克
文字属性

 实例

import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)
plt.plot(t, s)
plt.title(r'$\alpha_i > \beta_i$', fontsize=20)
plt.text(1, -0.6, r'$\sum_{i=0}^\infty x_i$', fontsize=20)
plt.text(0.6, 0.6, r'$\mathcal{A}\mathrm{sin}(2 \omega t)$',fontsize=20)
plt.xlabel('time (s)')
plt.ylabel('volts (mV)')
plt.show()

 tip:图片内部的字体需要掌握一定的Latex语言才可以

在图中添加箭头

plt.arrow(x, y, dx, dy, **kwargs)
作用是向子图中添加箭头
• x, y : 箭头起点坐标
• dx, dy : 箭头x上的长度和y轴上的长度
• width:箭头尾部的宽度。类型为浮点数,默认值为0.001。
• head_width:完全箭头头部的宽度。类型为浮点数或None,默认值为3*width。
• head_length:完全箭头头部的长度。类型为浮点数或None,默认值为
• 1.5*head_width

实例

import matplotlib.pyplot as plt
fig,axes=plt.subplots(3,4)
axes[0,0].arrow(0,0,1,1)
axes[0,1].arrow(0,0,1,1,width=0.2,head_width=0.5)
axes[0,2].arrow(0,0,1,1,width=0.2,head_width=0.5,head_length=0.2)
axes[0,3].arrow(0,0,1,1,width=0.2,head_width=0.5,head_length=0.2,length_includes_head=True)
axes[1,0].arrow(0,0,1,1,width=0.2)
axes[1,1].arrow(0,0,1,1,width=0.2,shape='full')
axes[1,2].arrow(0,0,1,1,width=0.2,shape='left')
axes[1,3].arrow(0,0,1,1,width=0.2,shape='right')
axes[2,0].arrow(0,0,1,1,width=0.2)
axes[2,1].arrow(0,0,1,1,width=0.2,overhang=0.2)
axes[2,2].arrow(0,0,1,1,width=0.2)
axes[2,3].arrow(0,0,1,1,width=0.2,head_starts_at_zero=True)
plt.show()

边框设定

隐藏右边框和上边框
使用 plt.gca 获取当前坐标轴信息。
使用 .spines 分别设置边框右侧边框和上边框,并用.set_color设置边框颜色:默认白色;
ax=plt.gca()
# right 、 top 、 bottom 、 left
ax.spines[‘right’].set_color('none')
ax.spines['top'].set_color('none')

 

添加定制图像

matplotlib.axes.Axes.add_patch(p)
matplotlib 有一些表示常见图形的 对象。这些对象被称为块(patch),其中有些(如Rectangle Circle)。要在图表中添加一个 图形,你需要创建一个块对象 shp然后通过 ax.add_patch(shp) 将其添加到 subplot

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
rect = plt.Rectangle((0.2, 0.75), 0.4, 0.15, color='k', alpha=0.3)
circ = plt.Circle((0.7, 0.2), 0.15, color='b', alpha=0.3)
pgon = plt.Polygon([[0.15, 0.15], [0.35, 0.4], [0.2, 0.6]],color='g', alpha=0.5)
ax.add_patch(rect)
ax.add_patch(circ)
ax.add_patch(pgon)
plt.show()

 pyplot文本显示函数

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,5,0.02)
plt.plot(x,np.cos(2*np.pi*x),'r--')
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=15,color='green')
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=15)
plt.title(r'正弦波实例$y=cos(2\pix)$',fontproperties='SimHei',fontsize=25)
plt.show()
在有中文输出的处增加一个属性:fontproperties

 

 

 图例

ax.legend([line1, line2, line3], labels=['label1', 'label2’,'label3'],lloc='lower right', fontsize=12, frameon=True, title=None)

 实例

import matplotlib.pyplot as plt
import numpy as np
from numpy.random import randn
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(randn(1000).cumsum(), 'k', label='one')
ax.plot(randn(1000).cumsum(), 'k--', label='two')
ax.plot(randn(1000).cumsum(), 'k.', label='three')
ax.legend(labels=["1","2","3"],loc='best')
plt.show()

更多参数设定

设置图例边框及背景
plt.legend(loc=‘best’,frameon=False) #去掉图例边框
plt.legend(loc=‘best’,edgecolor=‘blue’) #设置图例边框颜色
plt.legend(loc='best',facecolor='blue') #设置图例背景颜色,若无边框,参数无效
设置图例标题
plt.legend(loc='best',title='figure 1 legend') #去掉图例边框
设置位置
0: ‘best‘
1: ‘upper right‘
2: ‘upper left‘
3: ‘lower left‘
4: ‘lower right'
5: ‘right‘
6: ‘center left‘
7: ‘center right
'8: ‘lower center'
9: ‘upper center‘
10: ‘center'

同一窗口生成多个图

plt.subplot(nrows, ncols, plot_number)

在全局绘图区域中创建一个分区体系,并定位到一个子绘图区域。 

plt.subplot(3,2,4)或plt.subplot(324)

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
plt.subplot(221) #作图1
plt.plot(x, x)
plt.subplot(222) #作图2
plt.plot(x, -x)
plt.subplot(223) #作图3
plt.plot(x, x ** 2)
plt.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)#作图4
plt.subplot(224)
plt.plot(x, np.log(x))
plt.show()

 不均衡布局

plt.subplot2grid(shape, loc, rowspan, colspan)
参数shape 所划定的网格布局作为绘图区域以实现在参数loc 位置处绘制图形的目的。其中,shape,loc取值均为元组。

 

ax1 = plt.subplot2grid((3,3), (0,0), colspan=3)
ax2 = plt.subplot2grid((3,3), (1,0), colspan=2)
ax3 = plt.subplot2grid((3,3), (1, 2), rowspan=2)
ax4 = plt.subplot2grid((3,3), (2, 0))
ax5 = plt.subplot2grid((3,3), (2, 1))
plt.suptitle("subplot2grid")
import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(1,10)
a1 = plt.subplot2grid((3,3),(0,0),colspan = 2)
a1.plot(x, np.exp(x))
a1.set_title(‘指数’
,fontproperties='SimHei',fontsize=15)
a2 = plt.subplot2grid((3,3),(0,2), rowspan = 3)
a2.plot(x, x*x)
a2.set_title(‘平方’
,fontproperties='SimHei',fontsize=15)
a3 = plt.subplot2grid((3,3),(1,0),rowspan = 2, colspan = 2)
a3.plot(x, np.log(x))
a3.set_title(‘log’)
plt.tight_layout(); plt.suptitle("subplot2grid")
plt.show()

 图的保存

plt.savefig() #函数plt.show()之前调用,否则空白
将输出图形存储为文件,默认PNG格式,可以通过dpi修改输出质量。
支持格式:eps, pdf, pgf, png, ps, raw, rgba, svg, svgz
x = np.arange(1, 11)
a=plt.plot(x,2*x,x,3*x)
plt.legend(['a','b'])
plt.savefig('text.eps',dpi=600)
plt.show()

基础图标函数

 

 散点图

散点图也叫 X-Y 图,它将所有的数据以点的形式展现在直角坐标系 上,以显示变量之间的相互影响程度,点的位置由变量的数值决定。
通过观察散点图上数据点的分布情 况,我们可以推断出变量间的相关性。

plt.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None,
vmin=None, vmax=None, alpha=None, linewidths=None,
verts=None,edgecolors=None, hold=None, data=None, **kwargs)
xy:输入数据,array_likeshape(n,)
s:点的大小,标量或array_likeshape(n,),可选大小以点数^ 2
c:点的颜色
marker:点的形状 cmapcmap仅在c是浮点数组时使用。如果没有,默认为
rcimage.cmapnorm:实例用于缩放亮度数据为0,1norm只有在c是一个数组时才被使用 彩车。alpha:标量, 可选,默认值:无 alpha混合值,介于0(透明)和1(不透明)之间, linewidths:标量或array_like,可选,默认值:无 如果无,则默认为 (lines.linewidth,)。 verts:(x,y)的序列,可选 如果markerNone,这些顶点将用于构建标记。标记的中心位于 在(0,0)为标准化单位。整体标记重新调整 由s完成。
edgecolors :颜色或颜色顺序。

scatter(x, y, s=None, c=None, marker=None, alpha=None)

import matplotlib.pyplot as plt
import numpy as np
np.random.seed(222)
x=np.random.rand(20)
y=np.random.rand(20)
s = np.array(range(10,110,5))
c = np.array(range(0,20))
plt.scatter(x, y,s=s, c=c)
plt.colorbar()
plt.show()

plt.colorbar

颜色条是从标量值到颜色的映射的可视化。在Matplotlib中,被绘制到专用轴。matplotlib的pyplot模块中的colorbar()函数将色条添加到指示色标的图
plt.colorbar(mappable=None, cax=None, ax=None, **kwarg)
cax: 指定颜色条绘制的轴
ax:此参数是可选参数,它包含轴或轴列表。
** kwarg(关键字参数):此参数是可选参数,有两种:colorbar
properties:extend:{‘neither’, ‘both’,‘min’, ‘max’}的尖头超出范围值。 label:彩条的长轴上的标签。刻度:没有或没有刻度或定位器列表。返 回值:colorbar
matplotlib.colorbar.Colorbar”类的实例
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, ncols=2)
for ax in axes.flat:
im = ax.imshow(np.random.random((10, 10)), vmin=0, vmax=1)
plt.colorbar(im, ax=axes.ravel().tolist())
plt.show()

柱状图和直方图

柱状图=条形图
1. 柱状图一般用于描述离散型分类数据的对比
2. 每根柱子宽度固定,柱子之间会有间距
3. 横轴变量可以任意排序
直方图
1. 直方图一般用于描述连续型数据的分布关系
2. 每根柱子宽度可以不一样,且一般没有间距
3. 横轴变量有一定顺序规则

 柱状图

基础柱状图,使用垂直或水平的柱子显示类别之间的数值比较。其中一个轴表示
需要对比的分类维度,另一个轴代表相应的数值。
适合应用到分类数据对比
分类太多不适合使用
纵向柱状图
不适合表示趋势

 

 

 

 柱状图plt.bar

plt.bar(left, height, width=0.8, bottom=None, hold=None, data=None, **kwargs)

 柱状图实例

import matplotlib.pyplot as plt
import numpy as np
data_X = ['l1', 'l2', 'l3', 'l4', 'l5']
data_Y = [0.96332673, 0.41957767, 0.28530194, 0.66399872, 0.39162668]
data_Y1 = [0.95827706, 0.570968, 0.1820442, 0.6373498, 0.3974183]
x = np.arange(len(data_X)) # 设定步长
width = 0.4 # 设置数据条宽度
fig, ax = plt.subplots()
p1 = ax.bar(x - width / 2, data_Y, width)
p2 = ax.bar(x + width / 2, data_Y1, width)
ax.set_xticks(x)
ax.set_xticklabels(data_X)
plt.show()

 堆叠柱状图实例

import matplotlib.pyplot as plt
import numpy as np
data_X = ['l1', 'l2', 'l3', 'l4', 'l5']
data_Y = [0.96332673, 0.41957767, 0.28530194, 0.66399872, 0.39162668]
data_Y1 = [0.95827706, 0.570968, 0.1820442, 0.6373498, 0.3974183]
data_Y2 = [0.52999985, 0.54202189, 0.6418166, 0.69023167, 0.90743048]
x = np.arange(len(data_X)) # 设定步长
p1 = plt.bar(x, data_Y )
p2 = plt.bar(x, data_Y1, bottom=data_Y)#bottom 为数据条距坐标轴的距离
p3 = plt.bar(x, data_Y2, bottom=[data_Y1[i]+data_Y[i] for i in range(min(len(data_Y1),len(data_Y)))])
plt.xticks(x, data_X)
plt.show()

双向柱状图

import matplotlib.pyplot as plt
import numpy as np
data_X = ['l1', 'l2', 'l3', 'l4', 'l5']
data_Y = [0.96332673, 0.41957767, 0.28530194, 0.66399872, 0.39162668]
data_Y1 = [0.95827706, 0.570968, 0.1820442, 0.6373498, 0.3974183]
data_Y2 = [0.52999985, 0.54202189, 0.6418166, 0.69023167, 0.90743048]
x = np.arange(len(data_X)) # 设定步长
p1 = plt.bar(x, data_Y)
p2 = plt.bar(x, [-data_Y1[i] for i in range(len(data_Y1))])#将数据取成负数
plt.xticks(x, data_X)
plt.show()

Python全套学习笔记

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

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

相关文章

简单记录一下怎么看package.json文件

首先每个vue工程文件从仓库克隆代码下来的时候&#xff0c;一般都会包含这个文件&#xff0c;这个文件非常重要&#xff0c;package.json包含了关于项目重要信息&#xff0c;如下图所示 其中包含了name、version、description、author、scripts、dependencies、devDependencies…

小结 | 决策树

一.基本原理 决策树是一种树状结构模型&#xff0c;每一个根节点都是一个特征判断&#xff0c;它的叶子节点就是它的特征分类结果 决策树是一种分类和回归的基本模型&#xff0c;是一棵树的形式&#xff0c;其实就是将平时所说的 if-else 语句构建成了树的形式。决策树主要包…

短视频引流+私域流量沉淀,一个全新的短视频和链动模式结合方案

在微盟企微助手微盟智慧零售团队的协助下&#xff0c;今年7月底么么茶正式开始运营企微私域&#xff0c;截至当前&#xff0c;在短短3个月时间已成功沉淀7万私域客户&#xff0c;线上商城GMV超145万。 么么茶旅拍的核心流量来源自公域短视频平台&#xff0c;品牌基于服务覆盖下…

deck.gl 调研

0 结论 deck gl 是基于 WebGL 的数据可视化框架&#xff0c;可以集成在主流的地图框架&#xff08;arcgis&#xff0c;google maps&#xff0c;mapbox &#xff09;中使用&#xff0c; 也可以单独使用。 deck gl 通过layer进行数据可视化&#xff0c;支持多种展示效果&#xf…

ASP.NET开源版MES加工装配模拟系统源码/WinForm工厂加工装配系统源码/流程工序管理

一、源码描述 本系统用户大学机械科上位机加工装配模拟实验&#xff0c;目前正常用于实验当中。环境&#xff1a;VS2010(C# .NET4.0,多层结构)、sqlserver2008 r2 &#xff1b;Winform;使用到RFID读写器&#xff08;设备是可以变更的&#xff0c;修改RFID.Library项目的…

数字三角形问题

数字三角形问题一、题目描述二、题目分析1、问题分析2、思路分析&#xff08;1&#xff09;状态转移方程状态表示状态转移&#xff08;2&#xff09;循环的设计三、代码实现一、题目描述 二、题目分析 1、问题分析 这道题给我们的第一眼感觉就是情况太多了&#xff0c;太复杂…

【TypeScript】常用类型声明详情概述

目录 TypeScript常用类型 类型注解 TS类型概述 原始类型 数组类型 对象类型 函数类型 类型别名 接口 元组 字面量类型 枚举 any类型 typeof操作符 类型推论 类型断言 TypeScript常用类型 TypeScript是JS的超集&#xff0c;TS提供了JS的所有功能&#xff0c;并额…

PyInstaller的常用打包命令

学习了pyqt后&#xff0c;设计了界面&#xff0c;并且需要打包为exe程序。 每次打包时&#xff0c;都要查好久资料&#xff0c;故此记录一下常用的命令。 PyInstaller 是一个 Python 应用程序打包工具&#xff0c;它可以将 Python 程序打包为单个独立可执行文件。 要使用 P…

11Python面相对象基础语法

面相对象基础语法 01. dir 内置函数 在 Python 中 对象几乎是无所不在的&#xff0c;我们之前学习的 变量、数据、函数 都是对象 在 Python 中可以使用以下两个方法验证&#xff1a; 使用内置函数 dir 传入 标识符 / 数据&#xff0c;可以查看对象内的 所有属性及方法 提示…

虚拟机docker网络问题处理

问题 我们有2台设备&#xff0c;ip 为 172.20.30.1 172.20.30.2 &#xff0c;虚拟机上的服务需要连接这2台设备&#xff0c;网络已经做通了&#xff0c;可以正常连接虚拟机异常关闭&#xff0c;重新开启后。发现服务有些问题&#xff0c;就打算将docker服务重新部署&#xff0…

面渣逆袭:Java并发六十问,快来看看你会多少道

这篇文章有点长&#xff0c;四万字&#xff0c;图文详解六十道Java并发面试题。人已经肝麻了&#xff0c;大家可以点赞、收藏慢慢看&#xff01;扶我起来&#xff0c;我还能肝&#xff01; 基础 1.并行跟并发有什么区别&#xff1f; 从操作系统的角度来看&#xff0c;线程是…

善康医药冲刺科创板上市:计划募资13亿元,上半年亏损5000万元

近日&#xff0c;深圳善康医药科技股份有限公司&#xff08;下称“善康医药”&#xff09;在上海证券交易所递交招股书&#xff0c;准备在科创板上市。本次冲刺上市&#xff0c;善康医药计划募资13.27亿元&#xff0c;将用于新药研发项目、创新药高端制剂生产基地建设项目、营销…

Influxdb双写服务influxdb-relay部署配置【离线】

Background Influxdb社区版未提供集群方案&#xff0c;官方提供的集群模式为闭源收费版本&#xff0c;具体收费明细不太清楚哈&#xff0c;有知道的请留言告知哈。官方开源的influxdb-relay仅仅支持双写功能&#xff0c;并未支持负载均衡能力&#xff0c;仅仅解决了数据备份的问…

Simulink代码生成: Switch模块及其代码

本文描述Switch模块的建模并研究生成的代码。 文章目录1 Simulink中的Switch模块2 Switch模块建模及代码生成3 Switch模块其他用法3.1 多重Switch3.2 通过标定量Switch4 总结1 Simulink中的Switch模块 在Simulink中Switch模块时非常常见的&#xff0c;通常用于根据一定地条件选…

【代码随想录】二刷-贪心算法

贪心算法 《代码随想录》 什么是贪心&#xff1f; 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 贪心没有规定的套路。 刷题或面试的时候&#xff0c;手动模拟一下感觉可以局部最优退出整体最优&#xff0c;而且想不到反例&#xff0c;那么就试一试贪心。…

Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发?

摘要&#xff1a;为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求&#xff0c;华为IoT边缘提供ModuleSDK&#xff0c;用户可通过集成SDK让设备以及设备数据快速上云。本文分享自华为云社区《【华为云IoTEdge开发实战】Java开发如何通过IoT边缘ModuleSDK进…

软件测试:sql注入·依赖基本sql语句

查询语句 目的&#xff1a;回顾数据库查询条件语句&#xff08;手工sql注入操作基础知识&#xff09; 语句&#xff1a; 1. 查询所有字段&#xff1a;select * from users; 2. 查询指定字段&#xff1a; select user,password from users; 3. 条件查询&#xff1a;…

当红齐天再捧“绽放杯”金奖:全流程算力网络夯实元宇宙“底座”

近日&#xff0c;由工信部主办的第五届“绽放杯”5G应用征集大赛在深圳落幕。本届大赛以“5G赋能数字化&#xff0c;扬帆助力新征程 ”为主题&#xff0c;超7000家单位的2.8万个项目参赛&#xff0c;共享5G赋能实体经济的新技术、新成果。英特尔联合行业合作伙伴再获佳绩。 其…

IDEA反编译Jar包

一.安装Java Bytecode Decomplier插件 (1) File–>Settings–>Plugins &#xff0c;搜索 Java Bytecode Decomplier 插件 (2) 查看安装插件的路径 File->Import Setting 注意&#xff1a;如果你的插件里面搜不到 Java Bytecode Decomplier&#xff0c;但是能搜到…

陈都灵现身海南国际电影节,新片《关索岭》票房有望超《阿凡达》

刚送走了厦门金鸡奖&#xff0c;又迎来了海南电影节&#xff0c;第四届国际电影节&#xff0c;已经在美丽的海南岛拉开帷幕。 众多的中国优秀电影人&#xff0c;都欢聚一堂共话未来&#xff0c;为中国电影的发展献言献策&#xff0c;也展现出电影人的精神风貌。 在本届电影节走…