Python中plt.polar绘图线条与坐标轴重叠的解决方法咨询
解决plt.polar()小半径线条与坐标轴重叠问题
当用plt.polar()绘制小半径环形线段时,会出现线条和水平坐标轴重叠的情况,比如运行下面的测试代码,画出的线段会和水平坐标轴叠在一起:
import numpy as np import matplotlib.pyplot as plt theta = np.arange(0, np.pi, 0.001*np.pi) plt.polar(theta, np.full(len(theta), 0.1)) plt.show()
解决这个问题有几种实用办法:
- 调整极坐标原点偏移:通过
set_rorigin()让极坐标原点向内偏移,拉开小半径线条和坐标轴的距离,效果最直接。示例代码:
import numpy as np import matplotlib.pyplot as plt theta = np.arange(0, np.pi, 0.001*np.pi) fig, ax = plt.subplots(subplot_kw={'projection': 'polar'}) ax.plot(theta, np.full(len(theta), 0.1)) # 原点向内偏移-0.1,数值可根据需求调整 ax.set_rorigin(-0.1) plt.show()
- 提高线条层级(zorder):把绘制的线段zorder值设得比坐标轴高,让线条显示在坐标轴上方。不过如果坐标轴线条较粗,可能还是会有轻微重叠:
import numpy as np import matplotlib.pyplot as plt theta = np.arange(0, np.pi, 0.001*np.pi) plt.polar(theta, np.full(len(theta), 0.1), zorder=3) plt.show()
- 修改或隐藏坐标轴:如果不需要显示坐标轴,可以直接隐藏,或者调整坐标轴样式避免混淆:
import numpy as np import matplotlib.pyplot as plt theta = np.arange(0, np.pi, 0.001*np.pi) fig, ax = plt.subplots(subplot_kw={'projection': 'polar'}) ax.plot(theta, np.full(len(theta), 0.1)) # 隐藏径向刻度和极坐标边框 ax.set_yticklabels([]) ax.spines['polar'].set_visible(False) plt.show()
内容的提问来源于stack exchange,提问作者Florian Schmidt
相关产品推荐
相关产品推荐

