gpt4 book ai didi

python - 在副标题下方的子图列中添加标题

转载 作者:太空狗 更新时间:2023-10-30 00:47:48 28 4
gpt4 key购买 nike

有没有一种简单的方法可以添加到我的原始代码中,以便我可以将另一个标题添加到我的子图的两列中?例如下图中粉红色区域的某处。

有人推荐我看这个post寻求解决方案,但我正在寻找是否有不使用 for 循环的方法

enter image description here

我的代码:

import cv2
import numpy as np
import matplotlib.pyplot as plt


path = 'R:\\Temp\\xx\\'
path1 = 'R:\\Temp\\xx\\'

def Hue(im_file):
im = cv2.imread(im_file)
im = cv2.cvtColor(im, cv2.COLOR_BGR2HSV_FULL) # Get Hue value= range[0,360]
im1 = im[776, 402]
Hue = im1[0]
return Hue

def Saturation(im_file):
im = cv2.imread(im_file)
im = cv2.cvtColor(im, cv2.COLOR_BGR2HSV_FULL) #return Saturation value = range[0,255]
im1 = im[776, 402]
Saturation = im1[1]
return Saturation

def Value(im_file):
im = cv2.imread(im_file)
im = cv2.cvtColor(im, cv2.COLOR_BGR2HSV_FULL) #return Value(Brightness) value = range[0,255]
im1 = im[776, 402]
Value = im1[2]
return Value

def BlueComponent(im_file):
im = cv2.imread(im_file) #return blue value
im1 = im[776, 402]
b = im1[0]
return b

def GreenComponent(im_file):
im = cv2.imread(im_file) #return green value
im1 = im[776, 402]
g = im1[1]
return g

def RedComponent(im_file): #return red value
im = cv2.imread(im_file)
im1 = im[776, 402]
r = im1[2]
return r

myHueList = []
mySaturationList = []
myValueList = []
myBlueList = []
myGreenList = []
myRedList = []
myList = []
num_images = 99 # number of images

dotPos = 0
for i in range(1770, 1869): # loop to auto-generate image names and run prior function
image_name = path + 'Cropped_Aligned_IMG_' + str(i) + '.png' # for loop runs from image number 1770 to 1868
myHueList.append(Hue(image_name))
mySaturationList.append(Saturation(image_name))
myValueList.append(Value(image_name))
myBlueList.append(BlueComponent(image_name))
myGreenList.append(GreenComponent(image_name))
myRedList.append(RedComponent(image_name))
myList.append(dotPos)
dotPos = dotPos + 0.5


print(myBlueList)
print(myGreenList)
print(myRedList)
print(myHueList)
print(mySaturationList)
print(myValueList)
print(myList)



for k in range(1770,1869):
a = 'Cropped_Aligned_IMG_' + str(k)
image_name = path + a + '.png'
img_file = cv2.imread(image_name)

x = myList
y = myBlueList
y1 = myGreenList
y2 = myRedList
y3 = myHueList
y4 = mySaturationList
y5 = myValueList


plt.axes([0.1, 0.1, 1, 1])
plt.suptitle('BGR & HSV Color Decimal Code Against Function of Time(Hours)', fontsize=14, fontweight='bold')
plt.subplot(3,2,1)
plt.plot(x, y, 'b.-')
plt.title('Blue Component Color Decimal Code')
plt.xlabel('Time(Hours)')
plt.ylabel('Colour Code')

plt.subplot(3,2,3)
plt.plot(x, y1, 'g.-')
plt.title('Green Component Color Decimal Code')
plt.xlabel('Time(Hours)')
plt.ylabel('Colour Code')

plt.subplot(3,2,5)
plt.plot(x, y2, 'r.-')
plt.title('Red Component Color Decimal Code')
plt.xlabel('Time(Hours)')
plt.ylabel('Colour Code')

plt.subplot(3,2,2)
plt.plot(x, y3, 'b.-')
plt.title('Hue Component HSV Color Decimal Code')
plt.xlabel('Time(Hours)')
plt.ylabel('Colour Code')

plt.subplot(3,2,4)
plt.plot(x, y4, 'g.-')
plt.title('Saturation Component HSV Color Decimal Code')
plt.xlabel('Time(Hours)')
plt.ylabel('Colour Code')

plt.subplot(3,2,6)
plt.plot(x, y5, 'r.-')
plt.title('Value Component HSV Color Decimal Code')
plt.xlabel('Time(Hours)')
plt.ylabel('Colour Code')
plt.subplots_adjust(hspace = 0.5)
plt.show()

最佳答案

我可以想象在顶部创建一个空行的子图,每个子图都有自己的标题将充当列标题。

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = 6,8
colors = plt.rcParams["axes.prop_cycle"].by_key()["color"]

x = np.linspace(-3,3)
y = np.random.randn(len(x),6)

fig, axes = plt.subplots(ncols=2, nrows=3+1, gridspec_kw={"height_ratios":[0.02,1,1,1]})
fig.suptitle('Some long super title for the complete figure',
fontsize=14, fontweight='bold')
for i, ax in enumerate(axes.flatten()[2:]):
ax.plot(x,y[:,i], color=colors[i%6])
ax.set_title("Title {}".format(i+1))

for i, ax in enumerate(axes.flatten()[:2]):
ax.axis("off")
ax.set_title("Columntitle {}".format(i+1), fontweight='bold')

fig.subplots_adjust(hspace=0.5, bottom=0.1)
plt.show()

enter image description here

请注意,我在这里使用循环是为了简化事情。当然,如果出于任何原因需要,您可以单独为每个子图键入命令。

关于python - 在副标题下方的子图列中添加标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45758761/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com