Matplotlib

 函数知识点

plt.subplots()

 fig视为整个画布,而ax是画布上的一个子区域(即子图)

fig, (ax1, ax2) = plt.subplots(1, 2)

# 在第一个子图(ax1)上绘制直线
ax1.plot([1, 2, 3], [4, 5, 6])

# 在第二个子图(ax2)上绘制散点图
ax2.scatter([1, 2, 3], [4, 5, 6])

fig, axes = plt.subplots(2, 3, figsize=(10, 6),
 dpi=100, sharex=True, sharey=True)#共享x轴刻度,默认false

clear axis 的缩写,清除子图的所有内容,但保留那个框框

plt.xlable() 

x轴标签 

plt.xlabel('X Axis')

plt.xlim() 

x 轴的上下限

plt.xlim(1, 6)

plt.xscale() 

x轴刻度缩放,有linear 和 log

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.xscale('log')  # 设置 x 轴的刻度缩放为对数刻度

 plt.legend()

图形添加图例(legend)

plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')

# 添加图例
plt.legend()

 plt.grid( ) 

plt.grid(True)  # 显示网格线

 plt.gca()

get current axes(获取当前坐标轴)的缩写。gca 函数返回当前图中的坐标轴对象

使用 gca() 函数可以简化代码并提供更灵活的操作方式,使得在绘图过程中更加方便、高效。

fig = plt.figure()
# 添加一个子图(Subplot)并绘制曲线
ax = fig.add_subplot(111)
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
ax.plot(x, y)

# 在该图形上获取当前的坐标轴对象
current_ax = plt.gca()

# 对当前坐标轴对象进行操作
current_ax.set_xlabel("X")
current_ax.set_ylabel("Y")
current_ax.set_title("My Plot")

 plt.scatter()

散点图scatter

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

其中,一些常用参数的说明如下:

  • x:可选参数,表示数据点在 x 轴上的值,可以是一个一维数组或者列表。
  • y:可选参数,表示数据点在 y 轴上的值,可以是一个一维数组或者列表。
  • s:可选参数,表示数据点的大小,可以是一个标量,或者一个与 xy 数组长度相同的一维数组。默认值为 None
  • c:可选参数,表示数据点的颜色。可以是一个标量,或者一个与 xy 数组长度相同的一维数组。默认值为 None。接受一个类别数组,每个类别映射到不同颜色
  • marker:可选参数,表示数据点的标记形状。默认为 'o',表示圆点。

       cmap(颜色映射)、alpha(透明度)等。

x = np.random.rand(50)
y = np.random.rand(50)
c = np.random.rand(50)
plt.scatter(x, y, c=c, cmap='cool')
plt.colorbar()


category = np.random.randint(0, 3, 50)  
plt.scatter(x, y, c=category, cmap='viridis')
plt.colorbar(ticks=[0, 1, 2])
#两种用法

 

 

plt.plot()

plt.plot(x, y, color='red', linestyle='-',
 linewidth=2.5, marker='o', markersize=8, label='data')
  • color:指定线条的颜色,可以使用颜色名称或RGB值。例如,color='red' 或 color=(0, 0, 1)
  • linestyle:指定线条的样式,如实线、虚线     

 fmts用于指定线条的样式、颜色和标记等属性。参数是一个字符串,它由一个或多个字符组成

plt.plot(x, y, 'r--')  # 绘制红色虚线

plt.contours()  plt.contoursf() 

注意,当 colors 参数和 cmap 参数同时指定时,colors 参数会覆盖 cmap 参数,即按照指定的颜色来绘制等高线,而不使用颜色映射。如果两者都未指定,等高线默认使用 cmap 参数的颜色映射。

  • levels: 绘制等高线的高度级别,可以是一个数组或标量。默认为 10。
  • cmap 参数用于指定等高线的颜色映射(color map),即将数值映射到颜色的规则。常见的颜色映射包括 'viridis'、'jet'、'coolwarm' 等等。Matplotlib 提供了多种内置的颜色映射,你也可以自定义自己的颜色映射。默认情况下,cmap='viridis'(色盲友好)

  • colors 参数用于指定等高线的颜色。它可以是一个颜色字符串,也可以是颜色的列表或数组。如果是一个字符串,会将所有等高线使用该颜色;如果是一个列表或数组,可以分别指定每个等高线的颜色。例如,colors='red' 或 colors=['red', 'blue', 'green']

X, Y = np.meshgrid(x, y)

# 计算 Z 值(高度值)
Z = np.sin(X) + np.cos(Y)

plt.figure(figsize=(10, 4)) 
plt.subplot(1, 2, 1) 
contours = plt.contour(X, Y, Z, levels=10, cmap='viridis') 
plt.colorbar(contours) 

plt.subplot(1, 2, 2) 
contour_filled = plt.contourf(X, Y, Z, levels=20, cmap='coolwarm')
plt.colorbar(contour_filled)  
plt.show()

plt.inshow(),plt.imread()

plt.imread()用于读取图像文件并返回一个表示图像数据的 NumPy 数组。

plt.inshow()函数将二维数组或图像数据以颜色编码的形式显示在坐标轴上。它将数组的值映射到一种颜色映射(colormap)中,并根据数组中每个元素的值来决定显示的颜色。

interpolation='bilinear'#双线性插值产生较为平滑的图像,周围四个计算中间的像素值(三次线性插值)像素数量它会自己调整

image = plt.imread('path_to_image.jpg')
plt.imshow(image)


np.random.seed(42)
data = np.random.rand(10, 10)
plt.imshow(data, cmap='hot')
plt.imshow(data,cmap='hot', interpolation='bilinear')
#双线性插值,图像更平滑
plt.colorbar()
plt.show()

实操

1.def show_images

def show_images(imgs, num_rows, num_cols, titles=None, scale=1.5): #@save
"""绘制图像列表"""
figsize = (num_cols * scale, num_rows * scale)
_, axes = d2l.plt.subplots(num_rows, num_cols, figsize=figsize)
axes = axes.flatten()
for i, (ax, img) in enumerate(zip(axes, imgs)):
  if torch.is_tensor(img):
# 图片张量
     ax.imshow(img.numpy())
  else:
# PIL图片
      ax.imshow(img)
  ax.axes.get_xaxis().set_visible(False)
  ax.axes.get_yaxis().set_visible(False)
  if titles:
   ax.set_title(titles[i])
return axes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值