如何在 Matplotlib 中反转轴并设置极坐标图的零位?
How do you reverse the axis and set the zero position for a polar plot in Matplotlib?
使用Matplotlib的极坐标图时,theta轴默认零位为或向右,角度逆时针递增,如this example.
如何指定零位和反转增加theta的方向?在撰写本文时,documentation 相对有限。
轴方法 set_theta_zero_location
和 set_theta_direction
允许您分别指定零位置和增加 theta 的方向。这是 Matplotlib example.
的修改版本
import numpy as np
import matplotlib.pyplot as plt
r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r
ax = plt.subplot(111, projection='polar')
ax.plot(theta, r)
ax.set_rmax(2)
ax.set_rticks([0.5, 1, 1.5, 2]) # less radial ticks
ax.set_rlabel_position(-22.5) # get radial labels away from plotted line
ax.grid(True)
# ---- mod here ---- #
ax.set_theta_zero_location("N") # theta=0 at the top
ax.set_theta_direction(-1) # theta increasing clockwise
# ---- mod here ---- #
ax.set_title("A line plot on a polar axis", va='bottom')
plt.show()
请注意,对于 quiverplot,这些方法目前产生 strange results (see GitHub issue)。
使用Matplotlib的极坐标图时,theta轴默认零位为或向右,角度逆时针递增,如this example.
如何指定零位和反转增加theta的方向?在撰写本文时,documentation 相对有限。
轴方法 set_theta_zero_location
和 set_theta_direction
允许您分别指定零位置和增加 theta 的方向。这是 Matplotlib example.
import numpy as np
import matplotlib.pyplot as plt
r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r
ax = plt.subplot(111, projection='polar')
ax.plot(theta, r)
ax.set_rmax(2)
ax.set_rticks([0.5, 1, 1.5, 2]) # less radial ticks
ax.set_rlabel_position(-22.5) # get radial labels away from plotted line
ax.grid(True)
# ---- mod here ---- #
ax.set_theta_zero_location("N") # theta=0 at the top
ax.set_theta_direction(-1) # theta increasing clockwise
# ---- mod here ---- #
ax.set_title("A line plot on a polar axis", va='bottom')
plt.show()
请注意,对于 quiverplot,这些方法目前产生 strange results (see GitHub issue)。