0
我可以創建不同長度的多個陣列的一個可愛的散點圖:Matplotlib散點圖
import matplotlib.pyplot as plt
a = [1+2j, 2+3j, 3+4j]
b = [1+3j, 2+4j, 3+5j]
c = [1+4j, 2+5j, 3+6j, 4+7j]
abc = [a, b, c]
colours = ['blue', 'orange', 'green']
for aa,c in zip(abc, colours):
aaa = np.array(aa)
scat = plt.scatter(aaa.real, aaa.imag, c=c)
但是,如果我想與set_offsets
動態去做,事情只要數組的長度不同去扭曲:
import matplotlib.pyplot as plt
a = [1+2j, 2+3j, 3+4j]
b = [1+3j, 2+4j, 3+5j]
c = [1+4j, 2+5j, 3+6j, 4+7j]
abc = [a, b, c]
colours = ['blue', 'orange', 'green']
ax = plt.axes(xlim=(0.7, 4.3), ylim=(1.7, 7.3))
scat = ax.scatter([], [], c=colours)
paa = []
for aa in abc:
paa.append(aa[0:SUBSET_IDX])
paaa = np.vstack([paa]).flatten('F')
scat.set_offsets(np.c_[paaa.real, paaa.imag])
如果SUBSET_IDX
是2,幸福的日子。但如果它是4,沒有什麼可以繪製的!然而paaa
是你所期望的:
array([[(1+2j), (2+3j), (3+4j)], [(1+3j), (2+4j), (3+5j)],
[(1+4j), (2+5j), (3+6j), (4+7j)]], dtype=object)
我怎麼set_offsets接受不同長度的陣列?