Hey all,
This is my first day on this forum. So lets start whit a Question.
I'm trying to make a chart where my cursor says the X and Y values. Sadly I cant get an interval of 0.1 at these values. The smallest interval I can get is 1.
For my test program I'm using the following code:
Hopefully can someone tell me why I can get a smaller interval.
Thanks in advance.
This is my first day on this forum. So lets start whit a Question.
I'm trying to make a chart where my cursor says the X and Y values. Sadly I cant get an interval of 0.1 at these values. The smallest interval I can get is 1.
For my test program I'm using the following code:
Code:
Imports System.Windows.Forms.DataVisualization.Charting
Public Class Form1
Dim GraphOn As Boolean = False
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim MeasData(4, 3) As Int64
Dim MeasData1 As Int64
Dim MeasData2 As New ArrayList
Chart1.Series.Clear()
'x-as
MeasData(1, 0) = 1.15
MeasData(2, 0) = 2.12
MeasData(3, 0) = 3.12
MeasData(4, 0) = 4.53
'y-as data 1
MeasData(1, 1) = 1
MeasData(2, 1) = 2
MeasData(3, 1) = 3
MeasData(4, 1) = 4
'y-as data 2
MeasData(1, 2) = 2
MeasData(2, 2) = 4
MeasData(3, 2) = 6.3
MeasData(4, 2) = 10
'y-as data 3
MeasData(1, 3) = 3
MeasData(2, 3) = 4.5
MeasData(3, 3) = 1
MeasData(4, 3) = 8.1
GraphOn = True
For i As Integer = 0 To MeasData.GetUpperBound(1)
Dim r As Integer = MeasData.GetLength(0)
For j As Integer = 0 To r - 1
MeasData1 = MeasData(j, i)
Next
MeasData2.Add(MeasData1)
Next
CheckedListBox1.Items.Clear()
For k As Integer = 0 To MeasData.GetUpperBound(1)
Chart1.Series.Add(k)
Chart1.Series(k).ChartType = DataVisualization.Charting.SeriesChartType.Spline
Chart1.Series(k).XValueMember = (MeasData2(0))
For l As Integer = 0 To MeasData.GetLength(0) - 1
Chart1.Series(k).Points.AddY(MeasData(l, k))
Next
CheckedListBox1.Items.Add(Chart1.Series(k).Name.ToString)
Next
Chart1.Visible = True
Chart1.ChartAreas(0).AxisX.Minimum = 0
Chart1.ChartAreas(0).AxisX.Interval = 0.5
Chart1.ChartAreas(0).AxisX.MajorGrid.Enabled = False
Chart1.ChartAreas(0).CursorX.IntervalType = DateTimeIntervalType.Auto
Chart1.ChartAreas(0).CursorX.LineColor = Color.SpringGreen
Chart1.ChartAreas(0).CursorY.LineColor = Color.SpringGreen
Chart1.ChartAreas(0).CursorX.IntervalType = DateTimeIntervalType.Auto
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
For i As Integer = 0 To CheckedListBox1.Items.Count - 1
If CheckedListBox1.GetItemChecked(i) = True Then
Chart1.Series(i).Enabled = True
Else : Chart1.Series(i).Enabled = False
End If
Next
End Sub
Private Sub chart1_MouseWhatever(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Chart1.MouseMove
If GraphOn = True Then
'Aanmaken van variabels
Dim test2 As HitTestResult = Chart1.HitTest(e.X, e.Y)
Dim Cursorx As Integer = e.X
Dim Cursory As Integer = e.Y
Dim xvalue As Int64
Dim yvalue As Int64
'Als je in het plottinggebied komt dan
If test2.ChartElementType = ChartElementType.PlottingArea Then
'Set X-line
Chart1.ChartAreas(0).AxisX.MajorTickMark.Interval = 0.1
Chart1.ChartAreas(0).AxisX.Interval = 0.1
Chart1.ChartAreas(0).CursorX.Interval = 0.1
xvalue = Chart1.ChartAreas(0).AxisX.PixelPositionToValue(Cursorx)
Chart1.ChartAreas(0).CursorX.IntervalType = DateTimeIntervalType.Auto
Chart1.ChartAreas(0).CursorX.SetCursorPosition(xvalue)
'Set y-line
yvalue = Chart1.ChartAreas(0).AxisY.PixelPositionToValue(Cursory)
Chart1.ChartAreas(0).CursorY.Interval = 0
Chart1.ChartAreas(0).CursorY.SetCursorPosition(yvalue)
Label1.Text = "Cursor = " & xvalue & " , " & yvalue & " (x,y)"
End If
End If
End SubThanks in advance.