2

(私が書いていることの意味を理解していただければ幸いです。英語は私の母国語ではありません。)

txt ファイルを使用して空気の湿度を示すヒート マップを作成するのに問題があります。私のデータは次のようになります。

26.02.13 10:30:00 MEZ   31.79688    31.0625 32.875  31.8125 31.46875    30.9375 39.0    36.71875    36.1875
26.02.13 10:45:00 MEZ   31.875  31.10938    32.75   31.8125 31.46875    30.9375 39.0    36.71875    36.1875
26.02.13 11:00:00 MEZ   31.82813    31.15625    32.84375    31.8125 31.48438    30.9375 39.0    36.71875    36.1875
...

それはマトリックスではなく、次のとおりです。

日付 1、時刻 1、タイムゾーン、値 1-部屋 1、値 1-部屋 2、値 1-部屋 3、...

date2、time2、timezone、value2-room1、value2-room2、value2-room3、...

96個の値ごとに空白行を挿入して、日を互いに「分離」しました

これまでのところ、私のコードは次のようになります(ラベルなどを省略しました):

reset
set cbrange [0:100]
set palette defined (0 '#0000BB',0.091 '#0055FF',0.182 '#44BBEE',0.2728 '#DDFFDD',0.273 '#DDFFBB',0.45 '#DDFF44',0.5 '#FFFF00',0.55 '#FFF600',0.61 '#FFEE00',0.66 '#FFDD00',0.727 '#FFBD00',0.7272 '#FFBB00',0.86 '#FA2200',0.92 '#EA0000',1.0 '#880000')
set cblabel "Humidity"
set cbtics 0,20,100

set timefmt '"%d.%m.%y %H:%M:%S"' 

set format x '"%d.%m.%y"'
set xrange ['"26.02.13"':'"27.03.13"']

set format y '"%H:%M:%S"'
set xrange ['"00:00:00"':'"23:59:59"']

plot "data.txt" using 1:2:4

私の意図は、部屋 1 のヒート マップを作成することでした。それが機能する場合は、他の部屋のヒート マップを作成したいと思いますが、まず最初に :-)

**私が解決できない問題は次のとおりです。

「読み取れないファイル「data.txt」をスキップします」

「空の x 範囲でプロットできません」**

ファイルが読めないのはなぜですか? その ANSI では、空白行が gnuplot に最初からやり直す場所を伝える必要があります。

x範囲が空なのはなぜですか? 私はそれを間違って指定しましたか?

すべてのファイルは gnuplot の「bin」ディレクトリにあります。「data.txt」の長さは約 . 2000 行、私の gnuplot バージョンは 4.6 です

前もって感謝します

ヨハネス

4

1 に答える 1

1

gnuplot で時間データをプロットするのは難しいですが、覚えておくべきことがいくつかあります:

  1. スクリプトのどこset xdata timeかで、gnuplot に時間で作業していることを伝える必要があります。
  2. 時間指定子に関しては、時間列の区切り方に十分注意してください。データ ファイルに引用符がない場合は、指定子に引用符は必要ありません。

時間データが複数の列にまたがる場合、フォーマット指定子でそのように指定すると、gnuplot がそれを把握します。時刻データが開始する列 (この場合は列 1) のみを指定する必要があります。

これが私のために働くスクリプトです:

#!/usr/bin/env gnuplot

reset

set terminal pngcairo enhanced color rounded dashed size 800,500
set output 'test.png'

set cbrange [0:100]
set palette defined (0 '#0000BB',0.091 '#0055FF',0.182 '#44BBEE',0.2728 '#DDFFDD',0.273 '#DDFFBB',0.45 '#DDFF44',0.5 '#FFFF00',0.55 '#FFF600',0.61 '#FFEE00',0.66 '#FFDD00',0.727 '#FFBD00',0.7272 '#FFBB00',0.86 '#FA2200',0.92 '#EA0000',1.0 '#880000')
set cblabel "Humidity"
set cbtics 0,20,100

# need these three lines for time data
set xdata time
set timefmt '%d.%m.%y %H:%M:%S' # no quotes in specifier weil sie sind nicht im file
set format x '%d.%m.%y' # no extra quotes here, otherwise they appear in the output

set xrange ['26.02.13':'27.03.13']

# removed y formatting - not sure what you intended there

plot "data.dat" using 1:4 title 'Room 1'

次の出力が得られます。

ここに画像の説明を入力

これをヒートマップに変換することは、まったく別の問題です..

于 2014-06-13T15:22:22.250 に答える