matplotlib - 如何表示对应于极平面中单个量的复数?
问题描述
我有一个 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电压表以进行比较。
编辑:为了更好的可读性,我已经格式化了表格中的间距和缩进。
解决方案
你的半径在plt.polar()
通话中是错误的。在您的代码中尝试以下操作,
radius = np.sqrt(voltage.real**2 + voltage.imag**2)
plt.polar(th, radius, 'ro-')
推荐阅读
- hyperledger-fabric - Hyperledger Composer 通道概念
- google-maps - 传单如何将 L.CRS.SIMPLE 坐标转换为普通 L.CRS.Earth 坐标
- css - 两列结帐 Woocommerce
- c# - C# + SQL + Xamarin Android:
- php - PhpStorm 重新格式化不同于 phpcs (Zend CodeStyle)
- mysql - 在第二个用户登录后,第一个用户数据在主页中与第二个用户更新
- visual-studio - 如何在 VSTS Build & Release 中选择解决方案配置
- c - 在 solaris 10 sparc 上将 perl 编译为 64 位
- javascript - UI Router angularjs Transitions onBefore 返回promise 未编译模板闪烁
- asp.net-mvc - 使用 ASP.net MVC 或 Core 更新经典 ASP