当前位置: 首页 > 知识库问答 >
问题:

Matplotlib:在两个不同的图形中绘制相同的图形,而无需写入两次“绘图(x, y)”行

卢深
2023-03-14

我有一个简单的代码,它在两个不同的图(图1和图2)中绘制了完全相同的东西。然而,我必须写一行ax?。绘制(x,y)两次,一次用于ax1,一次用于ax2。我怎么可能只有一个plot表达式(对于我更复杂的代码来说,有多个redondant表达式可能是一个麻烦的来源)。类似于ax1、ax2。绘图(x,y)?

import numpy as np
import matplotlib.pyplot as plt

#Prepares the data
x = np.arange(5)
y = np.exp(x)

#plot fig1
fig1 = plt.figure()
ax1 = fig1.add_subplot(111)

#plot fig2
fig2 = plt.figure()
ax2 = fig2.add_subplot(111)

#adds the same fig2 plot on fig1
ax1.plot(x, y)
ax2.plot(x, y)

plt.show()

共有2个答案

杜阳泽
2023-03-14

在不了解matplotlib的情况下,您可以将所有轴(?)添加到列表中:

to_plot = []
to_plot.append(ax1)
...
to_plot.append(ax2)
...

# apply the same action to each ax
for ax in to_plot: 
    ax.plot(x, y)

然后,您可以添加任意数量的内容,每个内容都会发生相同的事情。

牛嘉谊
2023-03-14

可以将每个轴添加到列表中,如下所示:

import numpy as np
import matplotlib.pyplot as plt

axes_lst = []    
#Prepares the data
x = np.arange(5)
y = np.exp(x)


#plot fig1
fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
axes_lst.append(ax1)

#plot fig2
fig2 = plt.figure()
ax2 = fig2.add_subplot(111)
axes_lst.append(ax2)

for ax in axes_lst:
    ax.plot(x, y)

plt.show()

或者,您可以使用此不受支持的功能来提取pyplot中的所有图形。摘自https://stackoverflow.com/a/3783303/1269969

figures=[manager.canvas.figure
         for manager in matplotlib._pylab_helpers.Gcf.get_all_fig_managers()]
for figure in figures:
    figure.gca().plot(x,y)
 类似资料:
  • 我目前正在尝试用java绘制sin(x)的图形。作业说明要求我只使用drawLine()作为绘制图形的方法。我似乎不知道如何正确设置y值。现在我有一个while循环,用于逐个像素绘制线,但无法获得正确的y值。这是我目前所掌握的。 } 是的,我知道有很多事情我可以整理或简化,这只是一个粗略的草稿,本身,一旦我一切正常,我会清理。我已经尝试了多种方法来正确设置 y 值,我得到的最接近的方法最终绘制了一

  • 现在有两个列表值,如下所示: 和x标签: 我想绘制基于相同x标签的不同颜色的lst1和lst2条。 我尝试的代码: 但有错误: attribute error:“none type”对象没有属性“seq”

  • 我试图从python脚本中的两个列表创建一个简单的条形图。但是,当数据填充到plotly系统中时,不会显示任何图形。下面是我编写的代码、列表的内容以及Plotly生成的代码。也许这是一种在填充图之前需要以某种方式拆分列表的情况?请原谅,这是一个新手问题,我以前从未尝试过。如有任何想法,将不胜感激。 脚本代码: 列表内容: 由Ploly创建的代码:

  • 使用matplotlib时,我可以使用{importmatplotlib.pyplotas plt}因为我使用Tkinter,所以我也会使用PicreCanvasTkAgg来做同样的事情 有人能帮我在如何实现matplotlib的停顿效果在菲格勒CanvasTkAgg。

  • 各位程序员好, 我在代码中遇到了一个似乎无法破解的小问题。它与Java的Jframe;图形区域有关。我将在下面发布的代码是在一个绘图方法上。其目的是绘制ArrayList中的房间,该房间位于另一个类中,因此之前。这种偏离航线的情况不会发生,因此在这里发帖。 获取有关该项目的背景信息是ArrayList,其中包含各种不同大小和颜色的房间。房间本身就是物体。 首先是课程: 下面是用于创建房间的类。 我

  • 绘制一个圆环图,轴外有两个图例(第一个图例-在图形右侧,第二个-在底部)。 通过考虑两个图例的尺寸,对图形进行紧凑布局。