Python Matplotlib笔记本裁剪图
我试图在jupyter笔记本中制作一个交互式脚本,它将在循环中绘制不同的图像,并要求用户做出决定。我已经到了可以用3个子图重绘图形的地步,但不知道如何配置交互式图形的大小,使所有子图都可见。正如您所看到的,第二个子地块的一部分从右侧向外窥视 如果有任何帮助,我将不胜感激 这是我的密码: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
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)
不,不是,我现在更正。不,不是,我现在更正。