【发布时间】:2017-04-15 07:25:55
【问题描述】:
我正在尝试创建一个类似于以下的简单立体太阳路径图: http://wiki.naturalfrequency.com/wiki/Sun-Path_Diagram
我可以旋转极坐标图并将比例设置为 90。如何反转 y 轴? 目前轴从 0>90 开始,如何将轴反转到 90>0 来表示方位角?
我试过了:
ax.invert_yaxis()
ax.yaxis_inverted()
此外,我将如何创建立体投影而不是等距投影?
我的代码:
import matplotlib.pylab as plt
testFig = plt.figure(1, figsize=(8,8))
rect = [0.1,0.1,0.8,0.8]
testAx = testFig.add_axes(rect,polar=True)
testAx.invert_yaxis()
testAx.set_theta_zero_location('N')
testAx.set_theta_direction(-1)
Azi = [90,180,270]
Alt= [0,42,0]
testAx.plot(Azi,Alt)
plt.show()
目前我的代码似乎没有正确绘制线条,我需要将角度或度数转换为其他值吗?
非常感谢任何帮助。
【问题讨论】:
-
简短的回答是您需要立体投影而不是极坐标投影。但是,这意味着您要么必须 a) 自己对
Axes进行子类化(查看 matplotlib 中的projections.geo_axes,或者 b)调整现有代码以执行您想要的操作。 (只是为了插入我自己的东西,mplstereonet:github.com/joferkington/mplstereonet 可以适应这个,但它是用于地质数据的。)我接下来一两天很忙,但我会尝试发布两者的例子如果有人不打败我。 :) -
经过大量互联网搜索后,我认为使用 y_scale 可能就足够了:ScaleBase Example。虽然我不确定反向比例是否会起作用。会及时通知您。
-
@tcaswell 你好,请看下面的答案。
标签: python matplotlib polar-coordinates