C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 >>
■43425  Re[3]: Visual Studio2008
□投稿者/ 山元 -(2009/11/10(Tue) 14:07:23)
    No43423 (kita さん) に返信
    > 原因が分かりました。TextBoxのプロパティのMultilineがTrueになっていたせいでした。
    >
    > ただ私的にはテキストボックスの高さをいじりたいのでMultiline = Trueにしておかないといけないんです。
    >

    原因が解ったようですので。
記事No.43404 のレス / END /過去ログ74より / 関連記事表示
削除チェック/

■73887  Re[5]: tweetSharpのOauth認証について
□投稿者/ ヴァン -(2014/11/12(Wed) 15:07:18)
記事No.73876 のレス /過去ログ124より / 関連記事表示
削除チェック/

■76287  Re[2]: ASP.NET(4.0) 複数選択可なListBoxにおいて
□投稿者/ まー -(2015/06/21(Sun) 04:47:22)

    > これはどのように調べたのですか?

    VisualStudio2013のデバッグ機能を利用して調べました。
    (ブレークポイントを設置し、止まった状態で対象コードにマウスカーソルを当て、階層を下っていって、といった感じです)

    > ちなみにSystem.Web.UI.WebControls.ListBoxで要素が選択されているかを判断するには、
    > ListBox.Itemsの一つ一つの要素(System.Web.UI.WebControls.ListItem)のSelectedプロパティを確認します。
    >
    > 下記のように取得できないですか?
    >
    > protected void button_Click(object sender, EventArgs e)
    > {
    > List<string> selectedItems = new List<string>();
    >
    > foreach (ListItem item in this.listBox1.Items)
    > {
    > if (item.Selected)
    > {
    > selectedItems.Add(item.Text);
    > }
    > }
    >
    > this.textBox1.Text = string.Join(",", selectedItems.ToArray());
    > }

    はい。出来ませんでした。
    複数選択したのち、最小Indexのものしかtrueにならないため、
    If文で引っかかるはずのものが引っかかりません
    (......ということになる理由がわからないという相談です
記事No.76285 のレス /過去ログ128より / 関連記事表示
削除チェック/

■82964  ChartのX軸に日・時・分を指定し表示
□投稿者/ KY -(2017/02/22(Wed) 19:11:36)

    分類:[VB.NET/VB2005 以降] 

              :(中略)
    2016/10/11 10:24:00,1690
    2016/10/11 10:25:00,1680
    :(中略)
    2016/10/12 15:58:00,1730
    2016/10/12 15:59:00,1710
    2016/10/12 16:00:00,1750
    :(中略)

    などと言った日時と数値のデーターがあるとします。
    このうちの日時をChartのX軸に表示したのですが、このまま自動で表示しますと中途半端な日・時・分で表示がされます。
    これを例えば「15:00:00」、「15:15:00」、「15:30:00」、「15:45:00」、「16:00:00」などと15分単位、
    或いは30分単位、1時間単位、2時間単位などとするにはどうすれば良いのでしょう?
    よろしくお願いします。
親記事 /過去ログ142より / 関連記事表示
削除チェック/

■82966  Re[1]: ChartのX軸に日・時・分を指定し表示
□投稿者/ 大谷刑部 -(2017/02/23(Thu) 09:35:17)
    No82964 (KY さん) に返信
    > :(中略)
    > 2016/10/11 10:24:00,1690
    > 2016/10/11 10:25:00,1680
    > :(中略)
    > 2016/10/12 15:58:00,1730
    > 2016/10/12 15:59:00,1710
    > 2016/10/12 16:00:00,1750
    > :(中略)
    >
    > などと言った日時と数値のデーターがあるとします。
    > このうちの日時をChartのX軸に表示したのですが、このまま自動で表示しますと中途半端な日・時・分で表示がされます。
    > これを例えば「15:00:00」、「15:15:00」、「15:30:00」、「15:45:00」、「16:00:00」などと15分単位、
    > 或いは30分単位、1時間単位、2時間単位などとするにはどうすれば良いのでしょう?
    > よろしくお願いします。

    VB6やVBAでは日付型は内部値は1日を1としたDouble型ですが、
    .Netでは「日付構造体」のようなので、ToOADateで一端Double型に変換してから、
    (CDblとかCastでは変換できないようらしい、精度の高いDecimal型には変換すらできない)
    15分とか30分を10進法に直した値に丸める関数をつくればいいのではないでしょうか?
    ただし、Double型は内部は2進数なので、10進法でいう完ぺきな精度はおそらく不可能なので、
    その点は承知の上実装が必要になります。
    ToOADateでDouble型に変換の上、Decimalに変換するのはなおダメです。
    2進→10進で精度のずれが確実に起こります。








記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83003  Re[2]: ChartのX軸に日・時・分を指定し表示
□投稿者/ KY -(2017/02/25(Sat) 20:07:39)
    No82966 (大谷刑部 さん) に返信
    
    > VB6やVBAでは日付型は内部値は1日を1としたDouble型ですが、
    > .Netでは「日付構造体」のようなので、ToOADateで一端Double型に変換してから、
    > (CDblとかCastでは変換できないようらしい、精度の高いDecimal型には変換すらできない)
    > 15分とか30分を10進法に直した値に丸める関数をつくればいいのではないでしょうか?
    > ただし、Double型は内部は2進数なので、10進法でいう完ぺきな精度はおそらく不可能なので、
    > その点は承知の上実装が必要になります。
    > ToOADateでDouble型に変換の上、Decimalに変換するのはなおダメです。
    > 2進→10進で精度のずれが確実に起こります。
    > 
    
    折角教えて頂いたのですが、なにぶん初心者。
    言われてることがよく分かってないのですが、自動で表示すると適当(正確には適当ではないのですが)に表示するのを0時0分0秒を起点にして、例えば5分間隔にしたい場合は下記のように。
    
              :(中略)
    2016/10/11 10:24:00,1690 ----> データーの数値をグラフに表示 & X軸のタイトルには日時を非表示
    2016/10/11 10:25:00,1680 ----> データーの数値をグラフに表示 & X軸のタイトルには日時を表示
              :(中略)
    2016/10/12 15:58:00,1730 ----> データーの数値をグラフに表示 & X軸のタイトルには日時を非表示
    2016/10/12 15:59:00,1710 ----> データーの数値をグラフに表示 & X軸のタイトルには日時を非表示
    2016/10/12 16:00:00,1750 ----> データーの数値をグラフに表示 & X軸のタイトルには日時を表示
              :(中略)
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83018  Re[3]: ChartのX軸に日・時・分を指定し表示
□投稿者/ 大谷刑部 -(2017/02/27(Mon) 09:14:54)
    No83003 (KY さん) に返信
    > ■No82966 (大谷刑部 さん) に返信
    >
    >>VB6やVBAでは日付型は内部値は1日を1としたDouble型ですが、
    >>.Netでは「日付構造体」のようなので、ToOADateで一端Double型に変換してから、
    >>(CDblとかCastでは変換できないようらしい、精度の高いDecimal型には変換すらできない)
    >>15分とか30分を10進法に直した値に丸める関数をつくればいいのではないでしょうか?
    >>ただし、Double型は内部は2進数なので、10進法でいう完ぺきな精度はおそらく不可能なので、
    >>その点は承知の上実装が必要になります。
    >>ToOADateでDouble型に変換の上、Decimalに変換するのはなおダメです。
    >>2進→10進で精度のずれが確実に起こります。
    >>
    >
    > 折角教えて頂いたのですが、なにぶん初心者。

    初心者だからというのは免罪符になりません。
    どの辺がわからないかを記載していただかないと答えようがないです。
    丸投げ質問で理解しようとしてないように取れます。
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■82970  Re[1]: ChartのX軸に日・時・分を指定し表示
□投稿者/ WebSurfer -(2017/02/23(Thu) 12:45:19)
    No82964 (KY さん) に返信

    Chart のサンプルは持っているでしょうか?

    持っているなら以下はスルーしてください。また、持っていないけど興味はないとか、ソースが C#
    だから見る気がしないということがありましたら、やはりスルーしてください。


    MSDN のサイトからサンプルを入手できるので、ダウンロードして動くように設定することをお勧め
    します。解説が英語であるのを厭わなければこのサンプルは今後の開発に非常に有益なものになると
    思います。

    このスレッドの質問者さんの問題がサンプルを見ると解決するかどうかは分かりませんが、解決のた
    めのヒントはあるかもしれません(Chart Features > Axes > Setting Axis Labels Interval・・・
    とかに)。

    解決できなくとも、今後の開発に役立つはずですので、ダウンロードして設定する手間をかけても損
    はないと思います。(大した手間はかかりませんし)

    サンプルの入手先や設定手順は以下の記事にありますので、興味があれば見てください。

    Chart Samples
    http://surferonwww.info/BlogEngine/post/2016/02/14/chart-samples.aspx
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83004  Re[2]: ChartのX軸に日・時・分を指定し表示
□投稿者/ KY -(2017/02/25(Sat) 20:11:31)
    No82970 (WebSurfer さん) に返信

    > Chart のサンプルは持っているでしょうか?

    サンプルは持っています。
    具体的なお教えをお願いします。
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83343  Re[3]: ChartのX軸に日・時・分を指定し表示
□投稿者/ KY -(2017/03/17(Fri) 20:49:06)
    遅くなりましたがサンプル載せますのでよろしくお願いします。
    
    このサンプルでもそうですが、X軸を自動で表示をしますとそのラベルも適当に表示がされてしまいます。
    それをごく一般なグラフ(チャート)にもありますように、任意での間隔で・・、或いは指定した数値のみ、その位置に表示がされるようにならないものかと思っています。
    
    何故なら例えば 144、164、184 などと中途半端な表示になると見にくいからです。
    
    Public Class Form1
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        End Sub
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim dat As DataTable = New DataTable
            With dat.Columns
                .Add("年月日時分", GetType(Integer))    ' X軸 <---- 実際は"2017/03/16 16:31"、"2017/03/16 16:32"、・・・ などの"年月日時分"です。 
                .Add("数量", GetType(Integer))          ' Y軸
            End With
    
            Dim cRandom As New System.Random()                     ' Random クラスの新しいインスタンスを生成する
            Dim iResult1 As Integer = cRandom.Next(13, 186)       ' 実際は"年月日時分"ですが分かり易く 13以上 186 未満の乱数を取得し開始を決めている
            For i = iResult1 To iResult1 + 50
                Dim iResult2 As Integer = cRandom.Next(1, 100)     ' "数量"   (1 以上 100 未満の乱数を取得する)
                dat.Rows.Add(i, iResult2)
            Next
    
            Chart1.DataSource = dat
            Chart1.Series.Clear()
            Dim oresen = Chart1.Series.Add("棒グラフ")
            With oresen
                .ChartType = DataVisualization.Charting.SeriesChartType.Column
                .XValueMember = "年月日時分"     ' X軸
                .YValueMembers = "数量"          ' Y軸
                .IsVisibleInLegend = False
            End With
        End Sub
    End Class
    
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83351  Re[4]: ChartのX軸に日・時・分を指定し表示
□投稿者/ shu -(2017/03/18(Sat) 22:39:10)
    No83343 (KY さん) に返信
    
    提示されたサンプルに手を加えたものです。
    
            Dim dat As DataTable = New DataTable
            With dat.Columns
                .Add("年月日時分", GetType(Date))    ' X軸 <---- 実際は"2017/03/16 16:31"、"2017/03/16 16:32"、・・・ などの"年月日時分"です。 
                .Add("数量", GetType(Integer))          ' Y軸
            End With
    
            Dim cRandom As New System.Random()                     ' Random クラスの新しいインスタンスを生成する
            Dim iResult1 As Integer = cRandom.Next(13, 186)       ' 実際は"年月日時分"ですが分かり易く 13以上 186 未満の乱数を取得し開始を決めている
            Dim baseDate = Date.Today.AddDays(-iResult1)
            For i = iResult1 To iResult1 + 100
                Dim iResult2 As Integer = cRandom.Next(1, 100)     ' "数量"   (1 以上 100 未満の乱数を取得する)
                dat.Rows.Add(baseDate.AddMinutes(i), iResult2)
            Next
    
            Chart1.DataSource = dat
            Chart1.Series.Clear()
            Dim oresen = Chart1.Series.Add("棒グラフ")
            With oresen
                .ChartType = DataVisualization.Charting.SeriesChartType.Column
                .XValueMember = "年月日時分"     ' X軸
                .YValueMembers = "数量"          ' Y軸
                .IsVisibleInLegend = False
            End With
            With Chart1.ChartAreas(0)
                With .AxisX
                    .LabelStyle.Format = "yyyy/MM/dd HH:mm"
                    .IntervalType = DataVisualization.Charting.DateTimeIntervalType.Minutes
                    .Interval = 15
                End With
            End With
    
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83389  Re[5]: ChartのX軸に日・時・分を指定し表示
□投稿者/ KY -(2017/03/20(Mon) 20:15:28)
    2017/03/20(Mon) 20:29:11 編集(投稿者)

    No83351 (shu さん) に返信

    ありがとうございます。
    教えて頂いたので動作はしたのですが下記のサンプルに置き換えてはみたのですがどうも上手くいきません。
    応用は可能でしょうか?
    それと関係が有るのかは分かりませんが、実際のチャートではX軸に対してスクロールも掛けています。

    Dim ds As New DataSet
    Dim dt As New DataTable
    Dim dtRow As DataRow
    '列の作成
    dt.Columns.Add("年月日時分", GetType(String))  'GetType(Date)
    dt.Columns.Add("数量", GetType(Integer))
    ds.Tables.Add(dt)
    'データの追加
    Dim cRandom As New System.Random() ' Random クラスの新しいインスタンスを生成する
    Dim iResult1 As Integer = cRandom.Next(13, 186) ' 実際は"年月日時分"ですが分かり易く 13以上 186 未満の乱数を取得し開始を決めている
    For i = iResult1 To iResult1 + 100
    dtRow = ds.Tables(0).NewRow
    dtRow(0) = i
    dtRow(1) = cRandom.Next(1, 100) ' "数量" (1 以上 100 未満の乱数を取得する)
    ds.Tables(0).Rows.Add(dtRow)
    Next
    'Chart1
    Chart1.DataSource = ds 'Chart に表示するデータソースを設定
    Chart1.Series.Clear() '系列を初期化
    Dim oresen = Chart1.Series.Add("棒グラフ")
    With oresen
    .ChartType = DataVisualization.Charting.SeriesChartType.Column
    .XValueMember = "年月日時分" ' X軸
    .YValueMembers = "数量" ' Y軸
    .IsVisibleInLegend = False
    End With

    GoTo kk
    With Chart1.ChartAreas(0)
    With .AxisX
    .LabelStyle.Format = "yyyy/MM/dd HH:mm" ' "yyyy/MM/dd HH:mm" "yyyy/MM/dd"日
    .IntervalType = DataVisualization.Charting.DateTimeIntervalType.Minutes
    .Interval = 15 '1440分=1日
    End With
    End With
    kk:
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83392  Re[6]: ChartのX軸に日・時・分を指定し表示
□投稿者/ shu -(2017/03/20(Mon) 23:03:15)
    No83389 (KY さん) に返信

    > dt.Columns.Add("年月日時分", GetType(String))  'GetType(Date)
    この型を変えてしまっては
    IntervalType = DataVisualization.Charting.DateTimeIntervalType.Minutes
    が効かなくなってしまいます。
    (文字列は時間ではないので)


    > GoTo kk
    > With Chart1.ChartAreas(0)
    > With .AxisX
    > .LabelStyle.Format = "yyyy/MM/dd HH:mm" ' "yyyy/MM/dd HH:mm" "yyyy/MM/dd"日
    > .IntervalType = DataVisualization.Charting.DateTimeIntervalType.Minutes
    > .Interval = 15 '1440分=1日
    > End With
    > End With
    > kk:

    ここの処理を行わないようにしているのかと思いますがGotoは使わないで
    If false Then
    ・・・
    End If
    でくくった方がわかりやすいかと思います。
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83396  Re[7]: ChartのX軸に日・時・分を指定し表示
□投稿者/ KY -(2017/03/21(Tue) 00:49:57)
    No83392 (shu さん) に返信

    ありがとうございます。

    >> dt.Columns.Add("年月日時分", GetType(String))  'GetType(Date)
    > この型を変えてしまっては
    はい、そうですね。

    > ここの処理を行わないようにしているのかと思いますがGotoは使わないで
    はい、ここの処理を行わないようにしていますがこのような方法もあるのですね、今後はそうします。

    サンプルの修正をいただけると有難いです。
    特に、前回教えていただいた
    > Dim baseDate = Date.Today.AddDays(-iResult1)

    > dat.Rows.Add(baseDate.AddMinutes(i), iResult2)
    はどうしてよいのか分かりませんので。
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83397  Re[8]: ChartのX軸に日・時・分を指定し表示
□投稿者/ shu -(2017/03/21(Tue) 07:24:14)
    No83396 (KY さん) に返信

    >>ここの処理を行わないようにしているのかと思いますがGotoは使わないで
    > はい、ここの処理を行わないようにしていますがこのような方法もあるのですね、今後はそうします。
    さらに
    #if false Then
    ・・・
    #End If
    にするとコンパイル自体されないので
    コメントアウトするほどではないがコンパイルには
    含めたくない場合に有用です。


    >
    > サンプルの修正をいただけると有難いです。
    > 特に、前回教えていただいた
    >>Dim baseDate = Date.Today.AddDays(-iResult1)
    > と
    >> dat.Rows.Add(baseDate.AddMinutes(i), iResult2)
    > はどうしてよいのか分かりませんので。
    実際のデータ追加処理にすればよいので
    データをDate型の値とそのときのy軸の値を設定すればよいかと思います。
    元が文字列であれば
    Date.Parse (DateTime.Parse)
    Date.TryParse (DateTime.TryParse)
    Date.TryParseExact (DateTime.TryParseExact)
    などを使ってDate型へ変換するとよいかと思います。


記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83407  Re[9]: ChartのX軸に日・時・分を指定し表示
□投稿者/ KY -(2017/03/21(Tue) 23:02:34)
    No83397 (shu さん) に返信
    
    ありがとうございます。
    
    > さらに
    > #if false Then
    > ・・・
    > #End If
    > にするとコンパイル自体されないので
    > コメントアウトするほどではないがコンパイルには
    > 含めたくない場合に有用です。
    そのような効果もあるのですね。
    
    > 実際のデータ追加処理にすればよいので
    > データをDate型の値とそのときのy軸の値を設定すればよいかと思います。
    > 元が文字列であれば
    > Date.Parse (DateTime.Parse)
    > Date.TryParse (DateTime.TryParse)
    > Date.TryParseExact (DateTime.TryParseExact)
    > などを使ってDate型へ変換するとよいかと思います。
    はい、元のデータは "2017/03/21 11:17:00" などの文字列です。 
    dtRow(0) = DateTime.Parse("2017/03/21 11:17:00") などとしてデータを追加したのですがそれだけでは上手くいかないようです。
    お手数ですがテスト用に"2017/03/21 11:17:00" などの文字列を配列として作る方法を教えて頂けないでしょうか。
    それを元にもう一度サンプルを作りたいと思います。
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83417  Re[10]: ChartのX軸に日・時・分を指定し表示
□投稿者/ shu -(2017/03/22(Wed) 13:43:12)
    No83407 (KY さん) に返信

    > はい、元のデータは "2017/03/21 11:17:00" などの文字列です。 
    > dtRow(0) = DateTime.Parse("2017/03/21 11:17:00") などとしてデータを追加したのですがそれだけでは上手くいかないようです。

    先の提示されたコードで
      .Add("年月日時分", GetType(Integer))
    ここを
      .Add("年月日時分", GetType(Date))
    とすれば
    その処理自体は問題ないと思いますが、
    何が起きているのでしょうか?


    > お手数ですがテスト用に"2017/03/21 11:17:00" などの文字列を配列として作る方法を教えて頂けないでしょうか。
    > それを元にもう一度サンプルを作りたいと思います。
    この文字列からどんな配列をつくりたいのですか?
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83423  Re[11]: ChartのX軸に日・時・分を指定し表示
□投稿者/ KY -(2017/03/22(Wed) 17:33:32)
    2017/03/22(Wed) 17:54:04 編集(投稿者)

    No83417 (shu さん) に返信

    すみません。
    取り敢えずは
    http://k-db.com/futures/F101-0000/5m
    にあった「日経平均先物 期近限月つなぎ 5分足 時系列データ」をCSV保存し、そのデータを活用してみましたので、
    もし可能でしたらそれを修正いただけないでしょうか?

    このデータは5分単位なのですが、それを20分毎とか30分毎とかで設定をし表示が出来るようであれば多分OKだと思うのです。
    ただ、開始もですが終了も"年月日時分"は様々ですし、データも途中で抜けてるとこもあります。

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    'CSVファイル読み込み <----- http://k-db.com/futures/F101-0000/5m など、取り敢えずは「日経平均先物 期近限月つなぎ 5分足 時系列データ」をCSV保存し、そのデータを活用してみました。
    Dim datS As Integer = -1 'データ数
    Dim dat_ymdHm(500) As String '"年月日時分"
    Dim dat_suryo(500) As Integer '数量

    Dim sfileM As String = "C:\Users\++++\Downloads\futures_F101-0000_5m.csv" 'CSV保存をしたファイル名

    Using sr As New System.IO.StreamReader(sfileM, System.Text.Encoding.Default)
    Do While Not sr.EndOfStream
    Dim da As String = sr.ReadLine '1行全てを読み取る(ReadLineメソッド)
    Dim dat0() As String
    dat0 = da.Split(",") '一行を, (カンマ)で区切って項目ごとに分解
    If dat0(0) <> "日付" Then
    If Val(dat0(7)) > 0 Then '0 の場合はデータとしての活用意味がないため除く
    datS = datS + 1
    dat_ymdHm(datS) = dat0(0)
    dat_ymdHm(datS) = dat_ymdHm(datS) & " " & dat0(1) & ":00" '時分

    Mid(dat_ymdHm(datS), 5, 1) = "/" : Mid(dat_ymdHm(datS), 8, 1) = "/" '"2016/10/11 10:24:00" などに書式を変換する

    dat_suryo(datS) = Val(dat0(7)) '売買代金のみ数量として利用

    End If
    End If
    Loop
    sr.Close()
    End Using

    'データの配列を逆にし時系列に変更する。(もっと良い方法があるのでしょうが)
    Dim dummy_datS As Integer = -1
    Dim dummy_dat_ymdHm(500) As String
    Dim dummy_dat_suryo(500) As Integer
    For i = datS To 0 Step -1
    dummy_datS = dummy_datS + 1
    dummy_dat_ymdHm(dummy_datS) = dat_ymdHm(i)
    dummy_dat_suryo(dummy_datS) = dat_suryo(i)
    Next
    For i = 0 To datS
    dat_ymdHm(i) = dummy_dat_ymdHm(i)
    dat_suryo(i) = dummy_dat_suryo(i)
    Next

    'チャートの作成
    Dim ds As New DataSet
    Dim dt As New DataTable
    Dim dtRow As DataRow
    '列の作成
    dt.Columns.Add("年月日時分", GetType(String))
    dt.Columns.Add("数量", GetType(Integer))
    ds.Tables.Add(dt)
    'データの追加
    For i = 0 To datS
    dtRow = ds.Tables(0).NewRow
    dtRow(0) = dat_ymdHm(i)
    dtRow(1) = dat_suryo(i) '売買代金を数量としてセット
    ds.Tables(0).Rows.Add(dtRow)
    Next
    'Chart1
    Chart1.DataSource = ds 'Chart に表示するデータソースを設定
    Chart1.Series.Clear() '系列を初期化
    Dim oresen = Chart1.Series.Add("棒グラフ")
    With oresen
    .ChartType = DataVisualization.Charting.SeriesChartType.Column
    .XValueMember = "年月日時分" ' X軸
    .YValueMembers = "数量" ' Y軸
    .IsVisibleInLegend = False
    End With

    If False Then
    With Chart1.ChartAreas(0)
    With .AxisX
    .LabelStyle.Format = "yyyy/MM/dd HH:mm" ' "yyyy/MM/dd HH:mm" "yyyy/MM/dd"日
    .IntervalType = DataVisualization.Charting.DateTimeIntervalType.Minutes
    .Interval = 15
    End With
    End With
    End If</pre></pre></pre></pre>
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83425  Re[12]: ChartのX軸に日・時・分を指定し表示
□投稿者/ shu -(2017/03/22(Wed) 22:52:56)
    No83423 (KY さん) に返信
    
    これで一応表示はできるかと思います。
    
        Private _dt As DataTable
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            _dt = New DataTable()
            With _dt.Columns
                .Add("年月日時分", GetType(Date))
                .Add("数量", GetType(Integer))
            End With
    
            For Each line In File.ReadAllLines("D:\temp\futures_F101-0000_5m.csv", Encoding.GetEncoding(932))
                Dim values = line.Split(","c)
                Dim v = 0
                Integer.TryParse(values(7), v)
    
                If v > 0 Then
                    Dim 日付 As Date
                    Date.TryParseExact(String.Format("{0} {1}", values(0), values(1)), "yyyy-MM-dd HH:mm", Nothing, Nothing, 日付)
                    _dt.Rows.Add(日付, v)
                End If
            Next
    
            'Chart1
            Chart1.DataSource = _dt.AsEnumerable.Skip(0).Take(50)   'Chart に表示するデータソースを設定
            Chart1.Series.Clear()    '系列を初期化
            Dim oresen = Chart1.Series.Add("棒グラフ")
            With oresen
                .ChartType = DataVisualization.Charting.SeriesChartType.Column
                .XValueMember = "年月日時分"     ' X軸
                .YValueMembers = "数量"          ' Y軸
                .IsVisibleInLegend = False
            End With
    
            With Chart1.ChartAreas(0)
                With .AxisX
                    .LabelStyle.Format = "yyyy/MM/dd HH:mm"  ' "yyyy/MM/dd HH:mm"      "yyyy/MM/dd"日 
                    .IntervalType = DataVisualization.Charting.DateTimeIntervalType.Minutes
                    .Interval = 15
                End With
            End With
        End Sub
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83426  Re[13]: ChartのX軸に日・時・分を指定し表示
□投稿者/ KY -(2017/03/23(Thu) 02:02:40)
    2017/03/23(Thu) 02:10:56 編集(投稿者)

    No83425 (shu さん) に返信

    ありがとうございます。

    はい、表示は出来たのですが実際のデータ数は 227 もあるのに対して、何故かチャートで表示されてる棒は 50 程しかありません。
    227 全てを表示させたいです。

    それと・・、
    String型のデータを前もって作っておいて、下記のサンプルをそのまま利用は出来ないでしょうか?
    実際には"年月日時分"、"数量"の他にも 何項目かもありますので。

    'チャートの作成
    Dim ds As New DataSet
    Dim dt As New DataTable
    Dim dtRow As DataRow
    '列の作成
    dt.Columns.Add("年月日時分", GetType(String))   'GetType(Date)
    dt.Columns.Add("数量", GetType(Integer))
    ds.Tables.Add(dt)
    'データの追加
    For i = 0 To datS
    dtRow = ds.Tables(0).NewRow
    dtRow(0) = dat_ymdHm(i)
    dtRow(1) = dat_suryo(i) '売買代金を数量としてセット
    ds.Tables(0).Rows.Add(dtRow)
    Next
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 >>

パスワード/

- Child Tree -