nchondro
asked on
Plot Graph from Textbox
How to plot a graph from a multiple data set that was available from a textbox. The dataset is separated by line.
I have this serial port program that read the data which is display on a text box. The displayed data show records separated by line in a text box. I need to use that data to plot a graph.
Please help ASAP. THank you.
I have this serial port program that read the data which is display on a text box. The displayed data show records separated by line in a text box. I need to use that data to plot a graph.
Please help ASAP. THank you.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for the code, but how can I add additional cosmetic such as the X-Bar title, Y-Bar title, plus their range. Plus a way so I can change the default starting point instead of 0 but other number. Currently, I saw that the graph kinda crunch small in the middle can we make it bigger?
Thanks a lot.
Thanks a lot.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks a lot for the help. You've been very helpful You're the best. :)
Say called picGraph
change the properties so that AutoRedraw is True
change the scalemode to pixels
2) Add some code to convert the text to values:
Dim sLines() as String
sLines = Split(text1, vbcrlf) ' split all lines into an array
' move the text array into a value array
ReDim Values(Ubound(sLines)) As Single
dim lc as long
dim MaxValue as Single
For Lc = 0 to Ubound(sLines)
Values(lc) = csng(sLines(lc))
If Values(lc)>MaxValue Then
MaxValue = Values(lc) ' knowing the max value may be a help
End If
Next
3) Plot the points
' Uplift the max value
Maxvalue = MaxValue * 1.1
' Set some margins
TopGap = 100
BottomGap = 100
LeftGap = 100
RightGap = 100
AvailableHeight = picGraph.ScaleHeight - TopGap - BottomGap
BaseLine = AvailableHeight + TopGap
PlotWidth = (picGraph.ScaleWidth - LeftGap - RightGap)/(Ubound(values)-
For lc = 0 To Ubound(Values)-1
X1 = lc * PlotWidth
Y1 = BaseLine - (AvailableHeight * Values(lc)/MaxValue)
X2 = (lc+1) * PlotWidth
Y2 = BaseLine - (AvailableHeight * Values(lc+1)/MaxValue)
picGraph.Line (x1,y1)-(x2,y2), rgb(0,0,255)
Next Lc
And thats it.
I hope the above code works without too much debugging.
Declare all values as singles except those already declared
X1,x2,y1,y2 should be longs.
Hope this helps:~)