每隔 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()
如果在度数圆上每 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()