VBでMSCHART .NETの使い方を教えてください。以下のプログラムにx軸に日付データを入れたいと思っています。どのように書けばよろしいでしょうか?例としてx軸は2009/12/1,2009/12/2,2009/12/3などです。



Imports System.Windows.Forms.DataVisualization.Charting
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DynamicChartCreation_Load(sender, e)
End Sub

Dim Chart1 As System.Windows.Forms.DataVisualization.Charting.Chart
Private Sub DynamicChartCreation_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Chart1 = New Chart()

Dim chartArea1 As New ChartArea()

Chart1.ChartAreas.Add(chartArea1)
Dim series1 As New Series()
Dim series2 As New Series()
      データ代入は略
' Add series to the chart
Chart1.Series.Add(series1)
Chart1.Series.Add(series2)

Chart1.Location = New System.Drawing.Point(16, 48)

Chart1.Size = New System.Drawing.Size(360, 260)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Chart1})
End Sub 'DynamicChartCreation_Load

回答の条件
  • 1人2回まで
  • 登録:2009/12/12 19:14:48
  • 終了:2009/12/19 19:15:02

回答(2件)

id:freemann No.1

freemann回答回数302ベストアンサー獲得回数462009/12/12 20:10:46

ポイント35pt

こんな感じでしょうか。

series1.XValueType = ChartValueType.Date

Chart1.ChartAreas(0).AxisX.MajorTickMark.IntervalType = DateTimeIntervalType.Days

id:mai_mai_mail

多分正攻法ですが、私が代入するデータはSTRING 2009/12/01なのでエラーとなりました。データソースがSTRINGでした。聞き方が正確ではなかったですね。すみません。以下のようにCDateを利用すると.addddが引数に取れないとエラーとなります。もともと2009/12/01という文字をx軸に持ってくるにはどうすればいいでしょうか?

series1.Points.Add(CDate(Spt(0 + i * 5)))

2009/12/12 20:24:52
id:freemann No.2

freemann回答回数302ベストアンサー獲得回数462009/12/12 23:33:10

ポイント35pt

Points.Add()だと、X軸に設定できるデータタイプはdouble型のようですので別の方法をお勧めします。

Dim dt2 As New DataTable()

dt2.Columns.Add("Quantity", GetType(Int32))

dt2.Columns.Add("SalesDate", GetType(String))

dt2.Rows.Add(New Object() {0, "1992/6/15"})

dt2.Rows.Add(New Object() {15, "1993/10/28"})

dt2.Rows.Add(New Object() {10, "1993/12/12"})

dt2.Rows.Add(New Object() {0, "1993/2/21"})

dt2.Rows.Add(New Object() {25, "1993/3/11"})

dt2.Rows.Add(New Object() {30, "1993/5/22"})

dt2.Rows.Add(New Object() {50, "1993/5/24"})

dt2.Rows.Add(New Object() {85, "1993/5/29"})

dt2.Rows.Add(New Object() {0, "1994/9/13"})

dt2.Rows.Add(New Object() {85, "1994/9/14"})

chart1.DataSource = dt2

これに対して最初の回答のように設定すれば、X軸に日付が使えます。

  • id:freemann
    書き忘れていたことがありましたのでコメントを。
    2回目の回答を使用する場合、次のように設定してください。
    chart1.Series(0).XValueMember = "SalesDate"
    chart1.Series(0).YValueMember = "Quantity"
    もれましてすみません。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません