Python Matplotlib笔记本裁剪图

Python Matplotlib笔记本裁剪图,python,matplotlib,jupyter-notebook,Python,Matplotlib,Jupyter Notebook,我试图在jupyter笔记本中制作一个交互式脚本,它将在循环中绘制不同的图像,并要求用户做出决定。我已经到了可以用3个子图重绘图形的地步,但不知道如何配置交互式图形的大小,使所有子图都可见。正如您所看到的,第二个子地块的一部分从右侧向外窥视 如果有任何帮助,我将不胜感激 这是我的密码: import cv2 import matplotlib.pyplot as plt import pandas as pd % matplotlib notebook fig, [ax1, ax2, ax3

我试图在jupyter笔记本中制作一个交互式脚本,它将在循环中绘制不同的图像,并要求用户做出决定。我已经到了可以用3个子图重绘图形的地步,但不知道如何配置交互式图形的大小,使所有子图都可见。正如您所看到的,第二个子地块的一部分从右侧向外窥视

如果有任何帮助,我将不胜感激

这是我的密码:

import cv2
import matplotlib.pyplot as plt
import pandas as pd
% matplotlib notebook

fig, [ax1, ax2, ax3] = plt.subplots(1,3, figsize=(5, 5))
ax1.set_xlabel("src")
ax2.set_xlabel("rgb")
ax3.set_xlabel("hsv")
ax2.set_xlim([-1,257])
ax3.set_xlim([-1,257])
plt.legend(loc='upper right')

color = ('r','g','b') # HSV colors
labels = ('h', 's', 'v')  

plt.subplots_adjust(right = 2.3) 

for i in range(0,3):
  im = cv2.imread("image.png")
  im_rgb = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
  im_hsv = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)
  ax1.imshow(im_rgb, cmap='gray')
  for i,col in enumerate(color):
    histr = cv2.calcHist([im_rgb],[i],None,[256],[0,256])
    ax2.plot(histr, color = col, label=col)
  for i,col in enumerate(color):
    histr = cv2.calcHist([im_hsv],[i],None,[256],[0,256])
    ax3.plot(histr, color = col, label=labels[i])
  fig.canvas.draw()  
  answer = input("Next? " )

从中可能不明显,但
top
right
的参数需要小于1,以使轴保持在图形边界内,因为这些参数是图形边距开始处的图形高度和宽度的分数

如果您提供
right=2.3
,则表示最后一个子地块的右边缘以图形宽度的2.3倍结束-这很可能是不需要的


因此,将
保持在
1
下方的
右侧,为了使所有绘图都适合图形内部,您可能需要调整图形大小,例如
figsize=(13,5)
从,但是
top
right
的参数必须小于1,以使轴保持在图形边界内,因为这些参数是图形边距开始时图形高度和宽度的分数

如果您提供
right=2.3
,则表示最后一个子地块的右边缘以图形宽度的2.3倍结束-这很可能是不需要的


因此,将
保持在
1
下方的
右侧,为了使所有绘图都适合于图形,您可能需要调整图形大小,例如
figsize=(13,5)

不,不是,我现在更正。不,不是,我现在更正。