我使用matplotlib和numpy来绘制极坐标图。下面是一些示例代码:
import numpy as N
import matplotlib.pyplot as P
angle = N.arange(0, 360, 10, dtype=float) * N.pi / 180.0
arbitrary_data = N.abs(N.sin(angle)) + 0.1 * (N.random.random_sample(size=angle.shape) - 0.5)
P.clf()
P.polar(angle, arbitrary_data)
P.show()
你会注意到0°在图上的3点钟位置,Angular 是逆时针方向的。对于我的数据可视化目的来说,在12点钟位置设置0°并使Angular 顺时针旋转会更有用。除了旋转数据和手动更改轴标签之外,还有其他方法吗?
5条答案
按热度按时间unhi4e5o1#
更新这个问题,在Matplotlib 1.1中,现在
PolarAxes
中有两种方法可以设置theta方向(CW/CCW)和theta=0的位置。查看http://matplotlib.sourceforge.net/devel/add_new_projection.html#matplotlib.projections.polar.PolarAxes
具体参见
set_theta_direction()
和set_theta_offset()
。很多人试图做指南针一样的情节,似乎。
i1icjdpr2#
要展开klimaat'sanswer,请使用以下示例:
d8tt03nd3#
我发现matplotlib允许你创建自定义投影。我创建了一个从
PolarAxes
继承的。7xllpg7q4#
你可以修改matplotlib/projects/polar.py。
上面写着:
写上:
实际上我并没有尝试过,你可能需要根据自己的喜好调整x[:]和y[:]赋值。此更改将影响所有使用matplotlib polar plot的程序。
5lhxktic5#
两个反转例程都应该使用转换的完整路径:
和
现在,自动创建的NorthPolarAxes子类(如NorthPolarAxesSubplot)可以访问变换函数。
希望这能帮上忙。