我正在使用极地投影制作一些条形图。数据都是远离原点的大数字,因此我使用ax.set_rlim来使它们更容易区分。然而,当我设置rlim时,一些条纹在原点周围被切断。当我没有设置rlim时,这不是问题,但我无法像这样呈现我的数据。为什么会发生这种情况,有没有办法解决它?
以下是此问题的示例:
import matplotlib
import numpy as np
Sectors = np.arange(0,2*np.pi,np.pi/4)
Data = np.array([100,99,100,101,100.5,100.25,99.25,99.75])
fig, ax = plt.subplots(nrows = 1, ncols = 1, subplot_kw={'projection': 'polar'})
ax.bar(Sectors,Data)
ax.set_rlim(98,102)
plt.show()
注意,如果我不申请rlim,就不会发生这种情况。例如:
import matplotlib
import numpy as np
Sectors = np.arange(0,2*np.pi,np.pi/4)
Data = np.array([100,99,100,101,100.5,100.25,99.25,99.75])
fig, ax = plt.subplots(nrows = 1, ncols = 1, subplot_kw={'projection': 'polar'})
ax.bar(Sectors,Data)
#ax.set_rlim(98,102)
plt.show()
非常感谢任何帮助!
答案 0 :(得分:1)
这确实是一种非常奇怪的效果。
但似乎有一种解决方法使用bottom
关键字bar
。诀窍是将bottom
设置为内部rlim
(在本例中为98)并指定相对于底部值的数据。
import matplotlib.pyplot as plt
import numpy as np
Sectors = np.arange(0,2*np.pi,np.pi/4)
Data = np.array([100,99,100,101,100.5,100.25,99.25,99.75])
fig, ax = plt.subplots(nrows = 1, ncols = 1, subplot_kw={'projection': 'polar'})
ax.bar(Sectors,Data-98, bottom=98)
ax.set_rlim(98,102)
plt.show()
答案 1 :(得分:0)
在matplotlib中看起来像一个愚蠢的舍入错误。我把你的数字提高了10倍,而且除了一个楔子以外都显示了正确的数字。将rlim()设置为更大的范围也显示出一些改进。如果你需要把它放在一个演示文稿中,用一个画圆圈覆盖中间。
我害怕所有的绷带....