Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的极坐标图问题,未考虑角度_Python_Matplotlib_Charts - Fatal编程技术网

Python中的极坐标图问题,未考虑角度

Python中的极坐标图问题,未考虑角度,python,matplotlib,charts,Python,Matplotlib,Charts,我在制作极坐标图时遇到了一些问题。我应该得到一个8字形的图形(我的一些朋友在Origin和Excel中绘制了数据,它确实可以工作),但看起来代码编写得不正确。通过查看该图,我发现代码没有考虑我正在编写的角度(θ数组),但我不知道为什么会发生这种情况。我已经尝试了更多的代码,并用弧度书写角度,但似乎没有任何效果 import numpy as np import matplotlib.pyplot as plt from pylab import * import matplotlib.pyplo

我在制作极坐标图时遇到了一些问题。我应该得到一个8字形的图形(我的一些朋友在Origin和Excel中绘制了数据,它确实可以工作),但看起来代码编写得不正确。通过查看该图,我发现代码没有考虑我正在编写的角度(θ数组),但我不知道为什么会发生这种情况。我已经尝试了更多的代码,并用弧度书写角度,但似乎没有任何效果

import numpy as np
import matplotlib.pyplot as plt
from pylab import *
import matplotlib.pyplot as plt
from pylab import *
import numpy as np

r = np.array([11.7,12.1,10.1,6.6,3.1,1.5,2.3,5.2,
8.7,11.5,12,10.1,6.6,3.3,1.5,2.3,5.3,9.2,11.9])

theta =np.array([0,20,40,60,80,100,120,140,160,180,
200,220,240,260,280,300,320,340,360])

ax = plt.subplot(111, projection='polar')
ax.plot(theta,r)
ax.set_rmax(13)
ax.set_rticks([2,4,6,8,10,12])  # less radial ticks
ax.set_rlabel_position(-40)  # get radial labels away from plotted line
ax.grid(True)

ax.set_title("A line plot on a polar axis", va='bottom')
plt.show()
我也试过:

r3 = np.array([11.7,12.1,10.1,6.6,3.1,1.5,2.3,5.2,
8.7,11.5,12,10.1,6.6,3.3,1.5,2.3,5.3,9.2,11.9])

theta3 =np.array([0,20,40,60,80,100,120,140,160,180,
200,220,240,260,280,300,320,340,360])



fig = plt.figure()
ax = fig.add_subplot(111, projection='polar')
c = ax.scatter(theta3, r3)

与直觉相反,虽然极坐标图以度为单位显示其θ轴,但它实际上希望坐标以弧度为单位:

import numpy as np
import matplotlib.pyplot as plt

r = np.array([11.7,12.1,10.1,6.6,3.1,1.5,2.3,5.2,
              8.7,11.5,12,10.1,6.6,3.3,1.5,2.3,5.3,9.2,11.9])

theta =np.array([0,20,40,60,80,100,120,140,160,180,
                 200,220,240,260,280,300,320,340,360], dtype=float) # making sure it is float
# convert to radians
# theta *= np.pi/180.
theta = np.deg2rad(theta)

ax = plt.subplot(111, projection='polar')
ax.plot(theta,r)
ax.grid(True)

ax.set_title("A line plot on a polar axis", va='bottom')
plt.show()

我没有在文档中找到任何明确说明这一点的地方(只有正确执行的示例)

你得到的奇怪图片来自这样一个事实,即所有大于2pi的值都被折回到0…2pi的范围。例如,
20%2pi=1.15
,转换时约为65度,这是第二个值在绘图中的实际位置。

可能的重复: