tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルmschart vtchcharttype2dxy
記事No15647
投稿日: 2013/02/27(Wed) 10:15
投稿者Lin
不連続の点は線で繋ぎたいですが、どうな処理すればよろしいですか?
すみません、分かりにくいですよね、
例えば  
MyData(0,0)=0  MyData(0,1)=10
MyData(1,0)=1  MyData(1,1)=15
MyData(2,0)=2  MyData(2,1)=20
MyData(3,0)=3  MyData(3,1)=Null
MyData(4,0)=4  MyData(4,1)=18

.ChartData = MyDataを設定し、
[MyData(3,0)=3  MyData(3,1)=Null]の点はなし、
そのため線は「MyData(2,0)=2  MyData(2,1)=20」まで、
「MyData(4,0)=4  MyData(4,1)=18」の点は繋がないんです。
どうな設定すると繋ぐことができますか?
宜しくお願い致します。

[ツリー表示へ]
タイトルRe: mschart vtchcharttype2dxy
記事No15648
投稿日: 2013/02/27(Wed) 11:33
投稿者VBレスキュー(花ちゃん)
返事はしないし、マルチポストのようなので削除

実行結果
http://www.hanatyan.sakura.ne.jp/chart/chart0227.gif

[ツリー表示へ]
タイトルRe^2: mschart vtchcharttype2dxy
記事No15650
投稿日: 2013/02/28(Thu) 11:33
投稿者Lin
花ちゃん様

ご回答ありがとうございます。
実行結果は私のほしいです、「マルチポストのようなので削除」って、私は勉強不足なので、関係するソースはお教えていただけませんか?
宜しくお願い致します。

[ツリー表示へ]
タイトルRe^3: mschart vtchcharttype2dxy
記事No15651
投稿日: 2013/02/28(Thu) 12:52
投稿者VBレスキュー(花ちゃん)
ひょっとして、中国の方でしょうか?
それなら、今回はということで。
但し、当サイトをご利用になるのなら下記を読んでおいて下さい。

 http://hanatyan.sakura.ne.jp/hazimeni.htm#keijiban

質問の件ですが、リンクの画像のように表示されたらいいのであれば。

本来は、イレギュラーのあるようなデータは使用する前にチェックしておき
そのデータを訂正するなり、削除するなりすべきですが(統計上も問題になるはず)
グラフの表示だけで、統計線等を表示するなど統計上のデータとして使用しないので
あれば、欠損しているデータを何らかのデータを入れる事で線がつながります。

例えば、今回のデータなら4番目のデータが欠損しているので、4番目のデータに
3,19 の位置にプロットするようにデータを入れれば、前後の平均値になり線が引けますが
マーカーを表示している場合は、マーカーも表示されるので、4番目のデータに
3番目のデータか5番目のデータにを入れれば、3番目の位置と5番目の位置がつながる
事になります。
従って、データをセットするところで、Null が入っているか調べ入っていれば
そのデータを前のデータに置き換えればつながって表示されるようになります。

但し、最初と最後のデータに、Null が入っている場合は、どこにつなぐのかで
データを入れる値を決めて下さい。

コード的には下記のようになるかと思います。(仕様によりもう一工夫必要かも)
( Dat のところは、 MyData に置き換えて下さい。)

   'データチェック
   Dim i As Long
   For i = 0 To 4
      If IsNull(Dat(i, 0)) Or IsNull(Dat(i, 1)) Then
         '最初と最後に含まれていた場合どのようにするかで変更を
         If i = 0 Then
            Dat(i, 0) = Dat(i + 1, 0)
            Dat(i, 1) = Dat(i + 1, 1)
         Else
            Dat(i, 0) = Dat(i - 1, 0)
            Dat(i, 1) = Dat(i - 1, 1)
         End If
      End If
   Next i
  MSChart1.ChartData = Dat()

[ツリー表示へ]
タイトルRe^4: ありがとうございました
記事No15652
投稿日: 2013/02/28(Thu) 13:57
投稿者Lin
ご回答はありがとうございました。本当に助かりました。
完璧に解決しました、感謝いたします。
おしゃった通り、私が中国人です。
日本語は下手なので、今回はルール違反をしたんですが、皆様にご迷惑をおかけまして、申し訳ございませんでした。
上記のリンクをよく読みました、今度も宜しくお願い致します。

[ツリー表示へ]