在matplotlib中添加数据层

2024-09-21 05:38:00 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是一个非常天真的问题,但我找不到明确的说明如何做到这一点。我在matplotlib中要做的是:

  1. 做一些计算
  2. 创建图形或轴对象?在
  3. 将数据添加到对象中,绘制它
  4. 再做一些计算
  5. 将新数据作为新图层添加到对象中(不扩展现有数据,但具有新的线/散点)

我想做些类似的事情:

x = rand(10)
y = rand(10)
p = plot(x,y, '.', label="x:y")

# other code, possibly a new cell in the notebook

a = rand(10)
b = rand(10)

p.plot(a,b, '--', label="a:b") # error. what do I do to add a layer here?

最终绘图应包含(x,y)和(a,b)数据。在

我对有一堆子图不感兴趣(每个例子似乎都有这些),我想在pylab图中(在IPython笔记本中)完成上面的工作。在

谢谢!在


Tags: 数据对象图层图形plotmatplotlib绘制code
2条回答

我解决这个问题的一种方法是创建图形和轴,如下所示:

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1,2,3],[1,2,3])

在这里根据需要设置地物参数,最后调用show,但是block=False

^{pr2}$

然后,您可以使用Matplotlibs将其他函数添加到同一个轴上plt.gca公司()函数,使用Matplotlibs draw()函数返回用户当前或上次单击的轴(但不要创建新图形或轴):

plt.gca().plot([4,5,6],[4,5,6])
plt.draw()

您的问题是,plot返回的不是实际的对象,而是您试图将其用作的对象。所以你需要把p定义成你想要画东西的对象。在

import pylab as py
from numpy.random import rand

x = rand(10)
y = rand(10)
p = py.gca()
p.plot(x,y, '.', label="x:y")

# other code, possibly a new cell in the notebook

a = rand(10)
b = rand(10)

p.plot(a,b, ' ', label="a:b")

实际上,在原始代码中,如果您在第二个plot命令中删除了p.,那么您将得到我认为您想要的结果。在

相关问题 更多 >

    热门问题