每隔 5 度绘制一个点的极坐标图?

Making a polar plot with points every 5 degrees?

如果在度数圆上每 5 度绘制一个唯一值,我想制作一个极坐标图。我真的不知道该问什么才是正确的,但我 运行 遇到了麻烦。这是我当前的代码:

import numpy as np
import matplotlib.pyplot as plt
import csv

r = csv.reader(open('data.csv'))
#data is a list of 73 data points taken at each 5 degree increment
theta = (0,360,5)

#plot image
img = plt.imread("voltage_abs.png")
fig, ax = plt.subplots()
ax.imshow(img)
ax.imshow(img)
ax = plt.subplot(111, projection='polar')
ax.plot(theta, r)
ax.set_rmax(2)
ax.set_rticks([0.5, 1, 1.5, 2])  # less radial ticks
ax.set_rlabel_position(-22.5)  # get radial labels away from plotted line
ax.grid(True)

ax.set_title("Polar", va='bottom')
plt.show()

我的错误要么根本没有显示在绘图上,要么是 r 和 theta 的大小不匹配的问题。感谢您的帮助!

您没有正确使用 csv reader。而是使用 numpy 的 genfromtxt 函数。我制作了自己的 data.csv 文件,其中 73 个数字增加 2。

import numpy as np
import matplotlib.pyplot as plt


r =  np.genfromtxt('data.csv',delimiter=',')
#data is a list of 73 data points taken at each 5 degree increment
theta = np.linspace(0, 2 * np.pi, 73)

ax = plt.subplot(111, projection='polar')
ax.plot(theta, r)
ax.set_rmax(2)
ax.set_rticks([0.5, 1, 1.5, 2])  # less radial ticks
ax.set_rlabel_position(-22.5)  # get radial labels away from plotted line
ax.grid(True)

ax.set_title("Polar", va='bottom')
plt.show()