Я пробовал:
plot(z)
где z
- список комплексных чисел, который показывает abs(z)
по сравнению с индексом.
plot( z.real, z.imag )
не работает, он говорит, что list
не имеет атрибута real
.
Если z
- это список сложных, используйте
[k.real for k in z]
чтобы извлечь реальные части каждого числа в списке.
map( operator.attrgetter( "real" ), z )
но я думаю, что, возможно, я слишком много делал на Haskell ...
Если я правильно понимаю ваш вопрос, это может сработать, если вы исправите ошибку атрибута. "real" и ".imag" должны выполняться на комплексных числах, насколько я знаю, что означает, что они не будут работать, если не существует j-компонента:
>>> a = 2.5
>>> print a.real
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'float' object has no attribute 'real'
>>> a = 2.5 + 0j
>>> print a.real
2.5
Мне кажется, что в ваших аргументах для plot() вы пытались использовать ".real" и ".imag" в списке. Я предлагаю попробовать использовать ".real" и ".imag" для комплексных чисел внутри самого списка. Для списка комплексных чисел z:
>>> z[0].real
>>> z[0].imag
будет называть действительную и мнимую части первого комплексного числа по z соответственно. Есть много способов сделать это, я уверен, но следующее довольно просто:
>>> x = []
>>> y = []
>>> for num in z:
... x.append(num.real)
... y.append(num.imag)
...
>>> plot(x,y)
Жаль, что это было так многословно, я действительно устал. Хотя я никогда раньше не использовал plot(), я понимаю, что он может отображать списки, чтобы они работали.