相关疑难解决方法(0)

为什么许多例子在Matplotlib/pyplot/python中使用"fig,ax = plt.subplots()"

我正在学习matplotlib通过学习示例来学习,并且在创建单个绘图之前,许多示例似乎包括如下所示的行...

fig, ax = plt.subplots()
Run Code Online (Sandbox Code Playgroud)

这里有些例子...

我看到这个函数用了很多,尽管这个例子只是试图创建一个图表.还有其他一些优势吗?官方演示subplots()也用于f, ax = subplots创建单个图表时,它之后只引用了ax.这是他们使用的代码.

# Just a figure and one subplot
f, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')
Run Code Online (Sandbox Code Playgroud)

python plot visualization matplotlib

217
推荐指数
5
解决办法
14万
查看次数

matplotlib重复轴还是数字?

我在一个图/轴上有几个线条,条形图和艺术家.我想在原始图形/轴上添加不同的组件集.是否可以将原始图形/轴的所有对象复制到另一个图形/轴中,而无需通过代码重绘所有内容?

一种方法是在绘制另一组组件之前删除所有新添加的组件.但是,如果我想将几个轴放入一个图中,这将不起作用.这里已经进行了一些讨论.但它一个接一个地复制/添加所有对象,这并不比在有很多对象时重绘所有对象更好.

@Greg,非常感谢回复.如果我只绘制数据,它将很简单,只需重新绘制数据,甚至复制一些行.然而,这个数字包含了很多艺术家,也可以由用户通过GUI界面添加,或者通过动态脚本添加机器人,我可能在运行时不知道它们的类型.该图是即时生成的.当然,我可以尝试复制所有数据,记录所有艺术家类型,属性并再次重新绘制它们.但它太多了,并参与修改生成这些数字的软件.也许我可以遍历所有可能的对象做copyadd_xxx.但是,我会有一个更好的方法.

感谢@Joe Kington和他的帖子:"将轴实例添加到另一个数字".

我找到了复制轴并将轴插入子图的方法:

def test_pickleAxes():
    import pickle
    import numpy as npy
    x = npy.arange(0,4*npy.pi,0.2)
    y = npy.sin(x)

    fig, ax = plt.subplots()


    p = pickle.dumps(ax)
    ax2 = pickle.loads(p)

    ax.change_geometry(2,1,1)
    ax2.change_geometry(2,1,2)
    fig._axstack.add(fig._make_key(ax2), ax2)
    plt.show()
Run Code Online (Sandbox Code Playgroud)

然而,在大多数情况下,到目前为止它似乎并不比blit好.这是为什么?因为轴的腌制实际上是整个图形的腌制.当解开它时,它将创建一个新的图形,并且加载的轴实例将与它相关联.甚至我们设法将轴添加到旧图中.ax2仍然只与新数字相关联.因此,当我们尝试与旧图形交互时,ax2将不会相互作用.相反,如果我们缩放/平移新数字,两个数字中的ax2将会改变.如果我们只保存svg或pdf文件,这似乎是一个相当不错的解决方案.

仍然试图找到一种方法将ax2从新图中解耦并使其与旧图相结合.

matplotlib

5
推荐指数
0
解决办法
4167
查看次数

标签 统计

matplotlib ×2

plot ×1

python ×1

visualization ×1