如何在iPython笔记本中重复使用绘图布局>?

时间:2013-07-30 21:45:03

标签: python matplotlib ipython ipython-notebook

下面的代码为我提供了下面的图片。

flowRates=[2,5,10,20,50]
flowRateTol=0.2

#sets the limits for the plot
xRange=(0,700)
yRange=(0,70)

ax=axes()
ax.set_xlabel('Time (s)')
#ax.set_ylabel('Reaction Force (lbf)')
ax.legend(loc=0)

#set up the second axis
ax.twinx()
ax.set_ylabel('10s Average Flow Rate')

ax.set_xlim(xRange)
ax.set_ylim(yRange)

#shade the acceptable tolerance bands
for flowRate in flowRates:
    rectX=[0,xRange[1],xRange[1],0]
    rectY=[ flowRate*(1-flowRateTol),
            flowRate*(1-flowRateTol),
            flowRate*(1+flowRateTol),
            flowRate*(1+flowRateTol)]
    ax.fill(rectX,rectY,'b', alpha=0.2, edgecolor='r')

enter image description here

然而,我想在下一个iPython单元格中做的是在图表上实际绘制数据。我正在使用的代码(不成功)只是调用ax.plot(),但我无法获得显示我的数据的图表。

有什么想法?我的目标是有一个像我这样的问题:

  1. 了解我如何导入数据!
  2. 这是我设置图表的方式! (显示基础图)
  3. 这是我绘制所有数据的方式! (用数据显示基础图)
  4. 这是我过滤数据的方式! (做一些花哨的过滤)
  5. 这就是过滤后的数据! (在同一基础图上显示新数据)

1 个答案:

答案 0 :(得分:2)

我建议将不同的想法包装到功能中。 E.g

  1. 这是我导入数据的方式:

    def Import_Data(file_name,...):     #Stuff导入数据     返回数据

  2. 这是我绘制数据的方式: def Plot(data ..)

  3. 只绘制基本情节似乎是一个特殊情况,你可以做一次,但如果你真的希望能够显示这一点,并尽量减少重复代码的数量,只允许data=None忽略错误而不是绘制任何东西。

    像这样分割代码的好处在于,只需要对一个函数进行更改就很容易,只需要担心输入和输出。例如,要过滤,您可以在plot函数中添加过滤器paramateter,也可以创建以相同方式绘制的新过滤数据!