1

下面的代码给了我下面的图像。

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')

在此处输入图像描述

然而,我想在下一个 iPython 单元中做的是在图表上实际绘制数据。我用来执行此操作的代码(不成功)只是调用了ax.plot(),但我无法得到一个图表来显示我的数据。

有什么想法吗?我的目标是有一个这样的工作流程(我将介绍):

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

1 回答 1

2

我建议将不同的想法打包成函数。例如

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

    def Import_Data(file_name,...): # 导入数据的东西返回数据

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

仅绘制基本图似乎是一种特殊情况,您可能会执行一次,但如果您真的希望能够展示这一点,并尽量减少重复代码的数量,只需允许data=None忽略错误而不绘制任何内容。

像这样拆分代码的好处是很容易对一个函数进行更改,只要担心输入和输出。例如,要过滤,您可以向plot函数添加过滤器参数,或者创建以相同方式绘制的新过滤数据!

于 2013-07-30T22:12:21.377 回答