我有一个数据集被注入Matplotlib的plt.hist。 我保存了操作的结果如下:
data=[1,2,3,4,5,6,7,8,9]
n,bin,patches= plt.hist(data,bins=3)
但是如何访问保存为patches
的列表列表?
有人可以向我解释一下silent_list的/ patches.Rectangles的概念以及如何访问存储的数据吗?我想循环patches
以获取每个bin的子列表。类似于:
0: [1,4,6,8]
1: [2,3]
2: [5,7,9]
谢谢
答案 0 :(得分:0)
if __name__ == '__main__':
p_camera = Process(target = controlHardware,args = (SSHConnection,CameraInstance))
p_featureExtraction = Process(target = processImage, args = ())
返回的patches
是一个矩形列表。矩形有四个角,是plt.hist
,具有所有相应的属性。
您可以遍历修补程序以操纵条形图的属性,例如像
matplotlib.patches.Patch
然而,补丁自然没有关于它来自何处的信息。所以为了找到直方图数据,没有用。
为了找出哪个bin包含输入数据中的哪些点,您可以遍历import matplotlib.pyplot as plt
data=[1,2,2,3,4,5,7,7.5,9,8,9]
n,bins,patches= plt.hist(data,bins=3)
for bar in patches:
print(bar.get_height())
bar.set_facecolor("pink")
bar.set_edgecolor("red")
plt.show()
并选择相应bin中的那些点。
bins
会打印
import matplotlib.pyplot as plt
import numpy as np
data=[1,2,2,3,4,5,7,7.5,9,8,9]
n,bins,patches= plt.hist(data,bins=3)
binlist = np.c_[bins[:-1],bins[1:]]
d = np.array(data)
for i in range(len(binlist)):
if i == len(binlist)-1:
l = d[(d >= binlist[i,0]) & (d <= binlist[i,1])]
else:
l = d[(d >= binlist[i,0]) & (d < binlist[i,1])]
print(l)
plt.show()