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

标签 python matplotlib charts

我在处理极坐标图时遇到了一些问题。我应该得到的图形是一个八字形(我的一些 friend 在Origin和Excel中绘制了数据并且它确实有效),但看起来代码没有写好。通过查看该图,我发现代码没有考虑我正在编写的角度(theta 数组),但我不知道为什么会这样。我已经尝试了更多代码并以弧度形式编写角度,但似乎没有任何效果。

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)

最佳答案

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

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()

enter image description here

我没有设法在文档中找到明确说明这一点的任何地方(只有正确完成的示例)。

你得到的奇怪图片来自于所有高于 2pi 的值都折回到 0...2pi 范围内的事实。所以例如20 % 2pi = 1.15,转换后约为 65 度,这是第二个值在您的图中的实际位置。

关于python - Python 中的极坐标图问题,未考虑角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52740374/

相关文章:

python - 使用 matplotlib 的绘图上的颜色条件数据引发了循环

python - 将 Flask 中的 URL 还原为端点 + 参数

python - 根据数据框中的排序值旋转多行

python 和 matplotlib 以及更改标记颜色

python - 在 matplotlib 中按名称使用不同颜色的绘图点

javascript - Chart.js - X Axis 刻度

javascript - Chart.js 条形图鼠标悬停突出显示所有数据集,而不仅仅是选定的数据集

android - x 轴下的值不显示在折线图 MPAndroidChart 中

python - 获取命令在 Popen 中的位置

python - 读取 CSV 并绘制彩色折线图