当前位置: 首页 > 知识库问答 >
问题:

Python中的极地图问题,没有考虑角度

沈旻
2023-03-14

我在制作极坐标图时遇到了一些问题。我应该得到一个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)

共有1个答案

蒲德曜
2023-03-14

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

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度,第二个值实际位于绘图中。

 类似资料:
  • 我有一行代码: 当我这次尝试输出时,它返回: 然后我尝试格式化这个日期时间: 这让我想起: 这是错误的。这就像是在我的时区中减去6个小时,而不是加上它。为什么会这样?

  • 极地图包括极地图、蜘蛛图和玫瑰图。 极地图的使用需要额外的引入 highcharts-more.js <script src="http://cdn.hcharts.cn/highcharts/highcharts-more.js"></script> 在设计极地图的 API 时,我们非常充分考虑了现有参数和设计模式的复用性,并最终巧妙的新增了一个参数即可将普通的图表转换成极地图,即 chart

  • 问题内容: 有时,我只想为条目列表执行一个函数-例如: 有时我需要这些东西来进行模块初始化,所以我不想在全局名称空间中占用x之类的空间。一种解决方案是将map与lambda一起使用: 但这当然会创建一个不错的列表[None,None,…],所以我的问题是,是否存在没有返回列表的类似函数-因为我只是不需要它。 (当然,我也可以使用_x,因此不会留下可见的轮廓线-但地图解决方案看起来很整洁…) 问题答

  • 不幸的是,我在gradle docs中找不到任何指向我这个问题的东西。非常感谢您的帮助!

  • 我正在使用图表 (http://chartjs.org)。我试图给我的图表一个特定的高度,但它没有采取它。图表设置为响应式,因此我使用宽度100%。请检查下面的代码和笔。 Javascript/**线图*/ 断续器 CoDepen-http://codepen.io/rushenn/pen/PwGjOr 如何在响应式图表上设置特定高度?

  • 问题内容: 我尝试遍历一个映射,将其作为指向函数的指针传递,但是我找不到访问元素的方法。这是代码: 此示例中的第4行返回以下编译错误: 我尝试了方括号,但没有效果。如果我带走所有引用运算符(*&),则可以正常编译。 我该怎么写? 问题答案: 您不需要在地图上使用指针。 映射类型是引用类型,例如指针或切片 如果需要更改,可以使用一个指针: