2016-04-08 4 views
0

テキストファイルの値の列に基づいてグラフを作成するコードを作成しましたが、これらの値はグラフにプロットすると小さすぎるように見えます。テキストファイルは次のようになります。グラフをプロットする前にY値を調整する

0.00 
4.42 
1.10 
0.47 
0.21 
0.51 
0.28 
0.21 
0.01 
0.00 

グラフをプロットする前に標準値で値を増やすにはどうすればよいですか?ここ

は私のコードです:

package require Tk 

set width 300 
set height 100 
set openFile [open "/fileDirectory/file.txt"] 
set records [read $openFile] 
set data $records 

canvas .c -width $width -height $height 

text .t 
.t insert end $records 

pack .c 
pack .t 

set count 0 

foreach yValue $data { 
    lappend coords \ 
    [expr {$width * $count/double([llength $data])}] \ 
    [expr {$height - $yValue}] 
    incr count 
} 
.c create line $coords 

グラフを生成するためのコードは、元の値を変更することなくhere

優れたキャンバスにYの値を表示するために、任意の代替ソリューションから参照されています*助けにもなります。

答えて

0

、私はgnuplotのを知った、これは程度の私の問題を解決しているようです。 Gnuplotは、提供されたデータに座標を自動的に調整します。

0

デバイス上の画像を示すのタスクは、いくつかの配位システムといくつかの変換を必要とする:

1)最初に、正規化デバイス座標系(ビューポート)を世界座標で画像をマッピングしなければなりません。これはいわゆるウィンドウ/ビューポート変換です。

式は: のXv = [(Xvmax - Xvmin)/(Xwmax - Xwmin)] *(のXw - Xwmin)+ Xvmin = Sxの*(のXw - Xwmin)+ Xvmin = Sxの*のXw + Cxの

ここでのSx =(Xvmax - Xvmin)/(Xwmax - Xwmin) Cxの= Sxの*( - Xwmin)+ Xvmin

を同様にY

Yvと= [(Yvmax - Yvmin)用/(Ywmax Ywmin)] *(Yw-Ywmin)+ Yvmin = Sy *(Yw-Ywmin)+ Yvmin = Sy * Yw + Cy (下記参照)

2)2番目のステップは、物理デバイス(画面、プリンタ....)への変換です。 キャンバスウィジェットがそれを処理します。キャンバスの拡大縮小方法でズームインまたはズームアウトが可能です。

答えは、最初にウィンドウビューポート変換を実行する必要があるということです。

- ヨアヒムのTcl/Tkの環境へのさらなる研究の際 https://www.siggraph.org/education/materials/HyperGraph/viewing/view2d/pwint.htm

関連する問題