我有两个数据文件:datafile1和datafile2,第一个总是存在,第二个有时只存在。因此,datafile2上的数据图被定义为我的python脚本中的函数(geom_macro)。在datafile1上的数据绘图代码的最后,我首先测试datafile2是否存在,如果是,我调用定义的函数。但我在案件中得到的是两个独立的数字,而不是第二个数字的信息。 我脚本的那部分看起来像这样:
f = plt.figuire()
<in this section a contour plot is defined of datafile1 data, axes, colorbars, etc...>
if os.path.isfile('datafile2'):
geom_macro()
plt.show()
“geom_macro”功能如下所示:
def geom_macro():
<Data is collected from datafile2 and analyzed>
f = plt.figure()
ax = f.add_subplot(111)
<annotations, arrows, and some other things are defined>
是否有类似“append”语句用于在列表中添加元素的方法,可以在matplotlib pyplot中使用它来添加到现有的元素? 谢谢你的帮助!
答案 0 :(得分:4)
致电
fig, ax = plt.subplots()
一次。要将多个图添加到同一轴,请调用ax
的方法:
ax.contour(...)
ax.plot(...)
# etc.
请勿两次致电f = plt.figure()
。
def geom_macro(ax):
<Data is collected from datafile2 and analyzed>
<annotations, arrows, and some other things are defined>
ax.annotate(...)
fig, ax = plt.subplots()
<in this section a contour plot is defined of datafile1 data, axes, colorbars, etc...>
if os.path.isfile('datafile2'):
geom_macro(ax)
plt.show()
您不必使ax
成为geom_macro
的参数 - 如果ax
位于全局命名空间中,则可以从geom_macro
内访问geom_macro
{1}}无论如何。但是,我认为明确说明ax
使用geom_macro
更为清晰,而且,通过使其成为一个参数,您可以使geom_macro
更具可重用性 - 也许在某些时候您会想要使用多个子图,然后需要指定您希望{{1}}绘制哪个轴。