在matplotlib中,可以将图形名称传递给新创建的图形:
plt.figure('figure1')
例如,当尝试将先前创建的数字设为当前时,这非常方便。
import matplotlib.pyplot as plt
plt.figure('figure1')
plt.figure('figure2')
plt.figure('figure1')
上述脚本中的第四行将返回到第二行中创建的图形,而不必添加新图形。
类似地,可以将轴添加到图形以及轴的标签。以下
import matplotlib.pyplot as plt
fig = plt.figure('figure1')
rect1 = (0.5,0.5,0.5,0.5)
rect2 = (0.2,0.3,0.4,0.5)
fig.add_axes(rect1, label = 'axes1')
fig.add_axes(rect2, label = 'axes2')
添加带有标签的轴对象' axes1'和'轴2'到目前的数字。我想知道是否有可能沿着相同的线条返回这些轴,以及根据它的标签跳回到图形。
之类的东西ax = plt.axes('axes2')
以后我可以专门绘制一组数据到我选择的轴上,但是基于轴的标签。
ax.plot(XData, YData)
我需要这样做,因为我的所有数据都是字典的一部分,我设计的是数字和轴感知。也就是键值对中的键应该成为图形和轴标签。此外,我正在每个轴上绘制几个东西,但不是在我的循环中同时绘制。
关于这是否可行的任何想法?
答案 0 :(得分:2)
没有内置函数可以从其标签中获取轴。但你可以自己写一个。环绕图中的所有轴并返回带有所需标签的轴。
def get_ax_by_name(fig, name):
for axi in fig.axes:
label = axi.get_label()
if label == name:
return axi
return plt.gca()
def func(x,y, figure_name, axes_name):
fig = plt.figure(figure_name)
ax = get_ax_by_name(fig, axes_name)
ax.plot(x,y)