首先,很抱歉是否在其他地方提出了此要求。
在jupyter笔记本中,我想使用host_subplot
绘制具有多个y轴的多个图。这对于一个图形上的一个子图形来说效果很好,但是我想并排使用两个具有相同标记,内容不同的图形。
我意识到我可以做到
fig = plt.figure()
ho1 = host_subplot(121, figure=fig, axes_class=AA.Axes)
ho2 = host_subplot(122, figure=fig, axes_class=AA.Axes)
因为这些图的生成有些冗长,并且我想保持笔记本整洁,所以将它们放在一个函数中,并将要绘制的各个内容传递给该函数。在这里,我只是发布一个测试功能。
import matplotli.pyplot as plt
def test(position, fig):
from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA
ho = host_subplot(position, figure=fig, axes_class=AA.Axes)
ho.scatter(range(4), range(4))
plt.show()
%matplotlib nbagg
fig = plt.figure()
test(121, fig)
test(122, fig)
我正在使用嵌入式后端,因为我生成了数百个这样的地块,并且许多交互式地块很可能会浪费我的资源。现在,
%matplotlib inline
fig = plt.figure()
test(121, fig)
test(122, fig)
{{3}}
因此,似乎数字被初始化了而不应该初始化的地方。注释掉测试功能中的ho.scatter(..)
可以得到一个带有inline
后端的正确大小的图形,但是我更喜欢其中包含数据的图形。
可以通过功能方法解决此问题吗?我宁愿避免将图保存到磁盘,然后重新访问它们。 我想念一个更好的选择吗?
我们非常感谢您的帮助。
matplotlib.__version__
是2.2.4
现在我是从远处看的,在任何一个图中,ticklabel都不应该是。那么,如何绘制数据?