ich eine schöne Streudiagramm von mehreren Arrays unterschiedlicher Länge erstellen:Matplotlib Streudiagramm von Teilmenge von unterschiedlicher Länge Arrays
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)
Aber wenn ich will es mit set_offsets
dynamisch zu tun, Dinge gehen verrückt, sobald die Arrays unterschiedlicher Länge sind:
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])
Wenn SUBSET_IDX
2, glückliche Tage. Aber wenn es 4 ist, wird nichts geplottet! Und doch ist paaa
was man erwarten würde:
array([[(1+2j), (2+3j), (3+4j)], [(1+3j), (2+4j), (3+5j)],
[(1+4j), (2+5j), (3+6j), (4+7j)]], dtype=object)
Wie erhalte ich set_offsets Arrays unterschiedlicher Längen zu akzeptieren?