是否有方法在pyplot极坐标图中指定角度轴上的轴单位?

2024-06-16 10:16:28 发布

您现在位置:Python中文网/ 问答频道 /正文

现在,我的极坐标图是这样的:

enter image description here

但我需要它们看起来像这样:

enter image description here

有没有办法为pyplot中的角轴和径向轴指定主辅单位?我想使用matplotlib,但由于安装freetype是一个巨大的麻烦,我将不得不参与其中,我想看看我是否可以先用pyplot来完成。在

谢谢


Tags: matplotlib单位pyplotfreetype径向办法极坐标主辅
1条回答
网友
1楼 · 发布于 2024-06-16 10:16:28

我取了this example并从this question添加了一些行。希望这适合您的需要:

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)

ax.set_title("A line plot on a polar axis", va='bottom')

# angle axis
major_ticks = np.linspace(0, 2*np.pi, 36, endpoint=False)
minor_ticks = np.linspace(0, 2*np.pi, 360, endpoint=False)

ax.set_xticks(major_ticks, minor=False)
ax.set_xticks(minor_ticks, minor=True)

# ls for linestyle, lw for linewidth
ax.xaxis.grid(True, ls='-', lw=2, which='major')
ax.xaxis.grid(True, which='minor')


# radial axis
# angle axis
major_ticks = np.linspace(0, 2, 4, endpoint=False)
minor_ticks = np.linspace(0, 2, 40, endpoint=False)

ax.set_yticks(major_ticks, minor=False)
ax.set_yticks(minor_ticks, minor=True)

# ls for linestyle, lw for linewidth
ax.yaxis.grid(True, ls='-', lw=2, which='major')
ax.yaxis.grid(True, which='minor')

plt.show()

这将给出以下图片[您可能需要调整一些细节;-)]: output

相关问题 更多 >