绘制单个半径的多个半径值

2024-06-26 15:01:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在极坐标网格中绘制点,但我不知道如何为一个θ值绘制多个点。我有一个浮点型θ,从0到90度,分成90个等距间隔:

import numpy as np
theta = np.linspace(0,np.pi/2,90)

然后我有一个由以下循环生成的各种r或radius值的列表:

i = 100
initialR = 0.32130341
radiusList = []
for y in range(i):
    radius = pow(1.02,y)*initialR
    radiusList.append (float(radius))

我想要的是一个给定的θ值,比如θ=pi/2,在每个半径值上绘制点。有没有简单的方法?我计划使用matplotlib pyplot scatter,但不知道是否有更好的选择?我觉得应该是直截了当的,但我还没有发现θ和r大小不同的曲线


Tags: importnumpy网格间隔asnppi绘制
1条回答
网友
1楼 · 发布于 2024-06-26 15:01:19

请注意,第二块代码可以矢量化为:

np.power(1.02, np.arange(i))*initialR

这就是你想要的吗

thetas = np.linspace(0,np.pi/2,10)
i = 100
initialR = 0.32130341
radii = np.power(1.02, np.arange(i))*initialR

fig, ax = plt.subplots(subplot_kw=dict(projection='polar'))
for theta in thetas:
    plt.plot(np.full(radii.shape, theta), radii)

enter image description here

编辑:绘制单点而不是直线:

thetas = np.linspace(0,np.pi/2,10)
i = 100
initialR = 0.32130341
radii = np.power(1.02, np.arange(i))*initialR

fig, ax = plt.subplots(subplot_kw=dict(projection='polar'))
for theta in thetas:
    plt.plot(np.full(radii.shape, theta), radii, 'o', mfc='none')

enter image description here

相关问题 更多 >