
時間ごとに風向、風速のデータがそれぞれあり、エクセルで以下のようなグラフを作りたいです。
http://ariake-yatsushiro.jp/bui/NO3/data/no3_wind100.jpg
方角を360度表記にして、その値によってセルの色を変化させ、その色を取得してプロットの色を設定するように考えました。ただ0度から359度にかけて、色のグラデーションのかけ方がわかりません。
どなたかご教授願います。よろしくお願い致します。
Excel2016 Windows8.1
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

2018/03/01 08:49
2018/03/01 08:52 編集

退会済みユーザー
2018/03/01 08:51

退会済みユーザー
2018/03/01 08:57

回答2件
0
ベストアンサー
折れ線グラフだとすると同じ系列の色を区間ごとに変えるのはウィザードではできないようですがVBAでならできるんでしょうか・・・そのあたりのグラフの描画については自分にはノウハウがないので他の方へお譲りしたいと思います。
方向による色の計算のみコメントしてみます。
リンク先の色の付け方を再現すると仮定し、その色が方向によりどういうRGB成分になっているか調べると以下のように見えました。
R成分: 南西で最大、北東で最小
G成分: 南東で最大、北西で最小
B成分: 0
そこで風向きを北を0度として時計回りの角度(単位degree)で表現した場合、次のような計算式でRGB値(ここではVBAのRGB関数で求まるLong値)が計算できそうです。
text
1Const PI As Single = 3.14159 2 3Sub ColorTest() 4 Dim deg As Integer 5 Dim cx, cy, radius, c, s, x, y As Single 6 Dim rad As Single 7 cx = 200: cy = 200: radius = 100 8 For deg = 0 To 360 Step 5 9 rad = PI * deg / 180 10 c = CSng(Cos(rad)) 11 s = CSng(Sin(rad)) 12 x = cx + radius * s 13 y = cy - radius * c 14 ActiveSheet.Shapes.AddLine(cx, cy, x, y).Select 15 With Selection.ShapeRange.Line 16 .Weight = 2.5 17 .ForeColor.RGB = DirColor(deg) 18 End With 19 Next 20End Sub 21 22 23Function DirColor(ByVal dir As Single) As Long 24 Dim r, g As Integer 25 r = ColorComponentOfDirection(dir, 225#) 26 g = ColorComponentOfDirection(dir, 135#) 27 DirColor = RGB(r, g, 0) 28End Function 29 30Function ColorComponentOfDirection(dir As Single, baseDir As Single) As Integer 31 Dim diff As Single 32 diff = Abs(dir - baseDir) Mod 360 33 If diff > 180 Then diff = 360 - diff 34 ColorComponentOfDirection = Int((180 - diff) / 180 * 255) 35End Function
グラフの書き方がわからなかったため、上の例ではシート上に色付きのシェイプ(線分)を生成するようなものになっています。問題の色はDirColor関数で計算しています。引数は角度(0~360)です。
投稿2018/03/01 10:54
総合スコア18404
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2018/03/01 13:25

退会済みユーザー
2018/03/02 00:36

退会済みユーザー
2018/03/02 01:15

退会済みユーザー
2018/03/02 01:49

0
色の決定方法は普通に計算でできますが、Excelグラフで表現できるかは、わかりません。
http://www.sofgate.com/design/ct_gradation.html
NEWSの、それぞれに対して色を決めてあとは、等比計算で中間色を決めればよいかと思います。
系列ごとに違う線を引くっていう擬似的なものは、できますが・・・・
(Excel2016の系列の最大=255なので、データ量も255まで)
投稿2018/03/01 09:51
総合スコア4828
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2018/03/01 13:30

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。