1

2 つのエンティティ間のマップを含むファイルがあります。Linuxを使用して、x軸とY軸をグラフにプロットする必要があります。X 軸は時間 (12:35:07) のようなもので、Y 軸には整数の範囲 (1 ~ 14) があります。Linuxシェルスクリプトから呼び出されるメソッドを使用して、x軸とY軸をプロットする必要があります。X 軸には、合計で約 500 から 800 のサンプルがあります。(12:14:00 から 12:30:00 まで) と言います。誰でも私を助けてください。GNUplot を使用してみましたが、グラフが適切ではありません。入力例を以下に示します

12:34:58   5
12:35:06   9
12:35:07   14
12:35:07   13
12:35:08   4
12:35:08   5
12:35:17   9
12:35:17   13
12:35:18   14
12:35:19   4
12:35:19   5

これは私が書いたものです

1 set terminal png
2 set output 'test.png'
3 set xdata time
4 set timefmt "%H:%M:%S"
5 set yrange [1:15]
6 plot  "Graph1" using 1:2 title 'data A'

私が抱えている問題は、画像に多数のサンプルがあるためです (約 700 間隔で、各値を適切に見ることができません。また、Y 軸も適切ではありません。Y 軸を 10 個の値のみに制限する必要があります (1- 10). また、4 つの同様のグラフを描画し、各グラフを各コーナー (サブプロット) に配置する必要があります.サブプロットはまだ GNUplot で実行していません.

4

1 に答える 1

1

現在、主に 3 つの問題を抱えているようです。それらの一部については、問題が完全に明確ではないため、明確にするために質問を更新 (またはコメント) していただけると助かります。回答を更新できます。

1) ~700 の値のそれぞれを適切に見ることができません。

ここで、少し説明が必要です。700 個のデータ ポイントのそれぞれを個別に表示するのではなく、時間値をプロットするときに発生する x 軸の乱雑さを取り除きたいと考えています。このために、コマンドを使用できます

set xtics X

ここで、X は目盛りの間隔 (この場合は秒数) です。これは、あなたの望むことですか?

使用することもできます

set format x '%M:%S'

(または何か) x 値が軸にどのように表示されるかを制御したい場合。

2) y 軸は 10 個の値に制限する必要があります。

ここでも、あなたが探しているものは完全には明らかではありません。1 から 10 の間になるようにすべてを縮小しますか? 表示されるデータの範囲は 4 から 14 であるため、4 を引くと、次のように 0 から 10 の間のものを得ることができます。

plot  "Graph1" using 1:($2-4) title 'data A'

任意の y データセットを 1 から 10 の間に制限したい場合、それはもう少しトリッキーです:

stats "Graph1"
plot "Graph1" using 1:(($2-STATS_min_y)*9/(STATS_max_y-STATS_min_y)+1) title 'data A'

このstatsコマンドは、プロットする前にファイルに関する統計を取得します。畳み込みプロット コマンドは、すべてを y 軸で 1 から 10 の間にスケーリングする必要があります。

3) 4 つのサブプロットが必要です。

これはかなり簡単です。最初のプロット コマンドの前に、次のコマンドを使用します。

set multiplot layout 2,2

これにより、プロット用に 2x2 グリッドが作成されます。すべてのプロット コマンドは、新しいサブプロットにプロットします。使用するサブプロットの順序を変更する方法の詳細については、 gnuplothelp set multiplotコマンド ラインで入力してください。

于 2012-09-16T13:36:57.650 に答える