[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『グラフの近似曲線の係数を取得するには』(コロちゃん)
こんな感じで取得できると思います。
Sub test() Dim buf As Variant buf = Split(ActiveSheet.ChartObjects("グラフ 1").Chart _ .SeriesCollection(1).Trendlines(1).DataLabel.Text, vbLf) MsgBox buf(0) & vbLf & buf(1) End Sub
ここまでした方が解るかな?
Sub test() Dim buf As Variant, a As Double, b As Double, R2 As Double buf = Split(ActiveSheet.ChartObjects("グラフ 7").Chart _ .SeriesCollection(1).Trendlines(1).DataLabel.Text, vbLf)
a = CDbl(Replace(Split(buf(0), " ")(2), "x", "")) b = CDbl(Split(buf(0), " ")(4)) R2 = CDbl(Split(buf(1), " ")(2))
MsgBox buf(0) & vbLf & _ buf(1) & vbLf & vbLf & _ "y=ax+b" & vbLf & _ "a=" & a & vbLf & _ "b=" & b & vbLf & _ "R2=" & R2 End Sub
でも、傾きと切片ならSLOPE関数とINTERCEPT関数でも割り出せますけど・・・ (momo)
早速、ご指導有難うございます。
VBに関しては、Excelマクロで一般的に使う範囲しか勉強していませんので、お尋ねしたところです。
上部の方法は、うまくメッセージとして、表示されました。
実際には、下部で示していただいた方法のほうが、それぞれの係数が取得できるので、助かります。
ただ、実施してみますと、a=の行で、タイプエラーとなりました。
ーー
ついでに、と云っては失礼になりますが、@指数曲線近似の場合、A二次関数曲線の場合も教えていただければ幸いです。よろしくお願いします。
(コロちゃん)より
>指数曲線近似の場合、A二次関数曲線の場合も教えていただければ幸いです。
こちらのwebsiteが参考になると思います。 E97M054 散布図の近似曲線で式の係数を得る http://www2.aqua-r.tepm.jp/~kmado/kvba.htm (shin)
であれば buf = ActiveSheet.ChartObjects("グラフ 7").Chart _ .SeriesCollection(1).Trendlines(1).DataLabel.Text
だけにして、変数bufの中身を見てご自身でどのように数値を抜きとるか考えてみましょう。 (momo)
正規表現で取り出す場合の参考例を載せておきます。
Sub test() Dim buf As String, myStr As String Dim myC As New Collection, c As Variant
buf = ActiveSheet.ChartObjects("グラフ 1").Chart _ .SeriesCollection(1).Trendlines(1).DataLabel.Text
With CreateObject("VBScript.RegExp") .Pattern = "[^x][-\d.]+" .Global = True For Each c In .Execute(buf) myC.Add c.Value Next c End With For i = 1 To myC.Count myStr = myStr & vbLf & myC.Item(i) Next i MsgBox Mid$(myStr, 2) End Sub
(momo)
ご指導有難うございました。お陰様で、うまく関数を取得できるようになりました。
ただし、指数曲線近似の場面で、例えばy=4E+8e-0.101xという結果になったとき、
実際は、y=3.556783E+8e-0.101というように精度に問題が生じました。
LN関数で指数化し、一次関数として、SLOPE関数、INTERCEPT関数を使って係数を求め、
さらにEXP関数を使って、解を求めることにしました。
余りスマートな方法ではないかもしれませんが、1200件ほどの散布図グラフの分析を
短時間で確実に実施することができるようになりました。
このメモが、お目に留まる機会があるかどうか判りませんが、深く感謝しています。
有難うございました。(コロちゃん)
ちゃんと見てますよ〜 参考になる場面は少なかったかもしれませんが 出来たようで良かったです^^ (momo)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.