目次
この方法は,手軽ですが,データの並べ替えが面倒です.
一般にベクトルで表示したいもとのでーたのならびは,
X座標 | Y座標 | U速度 | V速度 |
1 | 1 | 5 | 1 |
1 | 2 | 8 | -1 |
のように,ベクトルの基点の座標と,速度が並んでいます.これを,
X座標 | Y座標 |
X座標+U速度 | Y座標+V速度 |
空き | 空き |
X座標 | Y座標 |
... | ... |
と,二列に折りたたんで並べ,この二列を選択して散布図から折れ線グラフを作成すると,あら不思議,ちゃんとベクトルが(線だけですが)表示されます.ポイントは,データの組毎に一行データの入っていない行を入れることで,線を分断することです.エクセルの設定によっては,データの空きがあっても線をつないでしまいますので,設定を確認してください.
やはり,こんな子供だましではいやだという場合は,VBAでプログラムを作成します.
VBAの開発方法は,どっかで調べてください.これは,熱工学部門の講習会のネタとしてあわてて作成したものですが,とりあえずベクトルを確認することはできます.
Sub VectorPlot()
'
' VectorPlot Macro
' 作成者:小林健一
' 作成日:2005年7月5日
'
' 座標系:左上が原点,X:右へ向かって正,Y:VOffsetから上に向かって正
'
' すでに描かれている図形の消去
ActiveSheet.Shapes.SelectAll
Selection.Delete
UnitScale = 15 '画面上で,1が何ピクセルか
UnitVector = 1 '基準ベクトルの長さ
VOffset = 200 '垂直方向のオフセット
' ベクトルの描画
For i = 1 To Selection.Rows.Count
x1 = ActiveCell.Offset(i - 1, 0).Value * UnitScale
y1 = ActiveCell.Offset(i - 1, 1).Value * UnitScale
x2 = ActiveCell.Offset(i - 1, 2).Value / UnitVector * UnitScale
y2 = ActiveCell.Offset(i - 1, 3).Value / UnitVector * UnitScale
With ActiveSheet.Shapes.AddLine(x1, VOffset - y1, x1 + x2, VOffset - y1 - y2).Line
.EndArrowheadStyle = msoArrowheadOpen
.EndArrowheadLength = msoArrowheadShort
.EndArrowheadWidth = msoArrowheadNarrow
End With
Next i
End Sub