首页 > 解决方案 > 如何表示对应于极平面中单个量的复数?

问题描述

我有一个 Python 列表,其中每行包含两列。第一列包含一个实数 ( th ),第二列包含一个复数 ( voltage )。

0.25  (1.2457255255383563e-09 - 7.827999559008199e-11j)
0.225 (1.2769209019868422e-09 - 1.1957504414521587e-10j)
0.2   (1.3221477572417824e-09 - 1.6359636324117563e-10j)
0.175 (1.382055160135606e-09  - 2.0572240011775488e-10j)
0.125 (1.5471711559849657e-09 - 2.696133396356665e-10j)
0.075 (1.787743723105496e-09  - 2.8204767576743745e-10j)
0.025 (2.0887332185896165e-09 - 2.0611142376588599e-10j)

我想在极平面上绘制这些电压,并用它们对应的th值标记。

使用以下代码,data我上面显示的表格在哪里:

def th_polar_plots(data):
    th = []
    vreal = []
    vim = []
    for row in data:
        th.append(row[0])
        voltage = complex(row[1])
        vreal.append(voltage.real)
        vim.append(voltage.imag)
    plt.polar(th, vreal, 'ro-', th, vim, 'bo-')
    plt.show()

我能够生成这个: 在此处输入图像描述

这不仅不正确,而且对我来说也没有任何意义。因为我需要的是每个电压矢量上都有一个点/圆圈作为th值,因为将来我需要在同一平面上绘制更多这样的th vs电压表以进行比较。

编辑:为了更好的可读性,我已经格式化了表格中的间距和缩进。

标签: matplotlibpython-3.6

解决方案


你的半径在plt.polar()通话中是错误的。在您的代码中尝试以下操作,

radius = np.sqrt(voltage.real**2 + voltage.imag**2)
plt.polar(th, radius, 'ro-')

推荐阅读