2016-04-06 6 views
0

からプロットmatplotlibの制限行のは: -私は現在、現在の形式でCSVファイルにセンサからの温度および湿度レベルをロギングしていCSV

2016-04-05 20:21:39,15.50,49.30 
2016-04-05 20:22:40,15.50,49.30 
2016-04-05 20:23:40,15.40,49.30 
2016-04-05 20:24:41,15.40,49.40 

Iは、次いで、プロットする値を読み取るためnumpy.loadtxtを使用しています。 -

これはすべて正常に動作しますが、最初からすべてのメトリックをプロットしています。私は 'x'行の最後の行数をプロットするように制限して、私が最後の24時間しか実行できないようにしたいと考えています。

これはソースとしてCSVファイルを使用することができますか、sqlite3データベースにデータを挿入し、適切な選択クエリを使用して、必要なデータをプルすることをお勧めします。

+0

あなたは私たちを見ることができますあなたのプロットとあなたが変更したいものを教えてください? – Hun

+0

プロットが表示されないことがわかりません。私はちょうどCSVファイルのすべての行をプロットしたくありません。それが500行、1000行、または10,000行の場合、ファイルの最後の100行だけをどのようにプロットするのですか? – harveyd

+0

プロットしたい配列の一部をスライスするだけです。構文をスライスし、Numpy配列でどのように動作するかを調べます。そして、たった一つの呼び出しで3つの配列を 'loadtxt()'にロードしてください。 :-) – BlackJack

答えて

0

データをそのままにしておくことができます。あなたが好きなようにプロットを制限してください。 @blackJackからのインスピレーションで

import matplotlib.pyplot as plt 
fig, ax = plt.subplots() 
ax.plot_date(dates, temp) 
ax.set_xlim(['yyyy-mm-dd hh:mm:dd', 'YYYY-MM-DD HH:MM:DD']) 
+0

私のシナリオではこのメソッドを動作させることができませんでした。私は仕事を得ることができた何かを掲示する。 – harveyd

1

、私はnumpyのによって生成配列で最後のx個の項目をプロットするplot_date内のスライスの配列を使用することができましたアンパック例えばtemp[-10:] -

hours = 24 # How many hours to show on the graph 
logtime = 5 # How many minutes each sample is taken 

ax.plot_date(dates[-((hours*60)/logtime):], 
      temp[-((hours*60)/logtime):], ls='-', marker='', color='red') 
ax2.plot_date(dates[-((hours*60)/logtime):], 
       humid[-((hours*60)/logtime):], ls='-', marker='') 
関連する問題