我知道如何增加两边的边距matplotlib:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
ax.set_xmargin(0.3)
ax.plot(range(10), np.random.rand(10))
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是,我只想在右侧有一个边距:类似于ax.set_xmargin(left=0.0, right=0.3). 那可能吗?我无法手动设置轴限制,因为绘图是动画的,并且每一步数据都在变化。
对此有一个旧的功能请求,它仍然是开放的。因此,不,您不能像任何当前版本的 matplotlib 一样独立设置边距。
当然,您可以编写自己的函数来做您想做的事。
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
ax.plot([1,2,3],[1,3,1])
def set_xmargin(ax, left=0.0, right=0.3):
ax.set_xmargin(0)
ax.autoscale_view()
lim = ax.get_xlim()
delta = np.diff(lim)
left = lim[0] - delta*left
right = lim[1] + delta*right
ax.set_xlim(left,right)
set_xmargin(ax, left=0.05, right=0.2)
plt.show()
Run Code Online (Sandbox Code Playgroud)
在动画中使用它需要在每个动画步骤中调用它。这可能会稍微减慢动画速度,但对于大多数应用程序来说应该仍然没问题。
| 归档时间: |
|
| 查看次数: |
1453 次 |
| 最近记录: |