• Status: Solved
• Priority: Medium
• Security: Public
• Views: 305

# Line Graph

Does anyone know how 2 make a continous line graph that has different values along in in different colours
- like a stacked bar graph does
0
Joana
• 5
1 Solution

Commented:
Hi!

One way (never done anything with graphs, but just in case it helps) is to do something like:

Use a line control with it's drawmode/pen (can't really remember which property it is) set to invert.

This would cause whatever that's behind it to be another colour.

Hope this helps!

That's it!

0

Commented:
I know how to make a line graph in different colors. But I don't quite grasp what you want to do. Do you mean that you want part of the line a different color than another part? Or do you mean that you want the data points on the line marked in different colors? Or something else?  Would you explain further?
0

Commented:
Just a guess at what your looking for.  Is it close?  You have to add the Microsoft Chart Control to your project to use this code.

Option Explicit
Private gArray(1 To 13, 1 To 6)

Dim i As Integer
Randomize Timer
MSChart1.Plot.UniformAxis = False
MSChart1.chartType = VtChChartType2dXY
For i = 1 To 5
gArray(i, 1) = i
gArray(i, 2) = Rnd
Next i
gArray(5, 3) = 5
gArray(5, 4) = gArray(5, 2)
For i = 6 To 10
gArray(i, 3) = i
gArray(i, 4) = Rnd
Next i
gArray(10, 5) = 10
gArray(10, 6) = gArray(10, 4)
For i = 11 To 13
gArray(i, 5) = i
gArray(i, 6) = Rnd
Next i
MSChart1 = gArray
End Sub

Private Sub Form_Resize()
MSChart1.Move ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight
End Sub
0

Commented:
or more like this...?

' Example #2
Option Explicit
Private gArray(1 To 13, 1 To 6)
Dim i As Integer
Randomize Timer
MSChart1.Plot.UniformAxis = False
MSChart1.chartType = VtChChartType2dXY
For i = 1 To 13
gArray(i, 1) = i
gArray(i, 2) = Rnd * 2 + 1
gArray(i, 3) = i
gArray(i, 4) = Rnd * 3 + 2
gArray(i, 5) = i
gArray(i, 6) = Rnd * 4 + 3
Next i
MSChart1 = gArray
End Sub
Private Sub Form_Resize()
MSChart1.Move ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight
End Sub
0

Commented:

' Example #3

Option Explicit
Private garray(1 To 6, 1 To 2)

Dim d As Integer, s As Integer
For s = LBound(garray, 2) To UBound(garray, 2) ' series
For d = LBound(garray, 1) To UBound(garray, 1) ' datapoints
garray(d, s) = d * s
Next d
Next s
With MSChart1
.chartType = VtChChartType2dLine
.ChartData = garray
.Plot.SeriesCollection(1).Position.Order = 1 ' series 1 and 2 are stacked
.Plot.SeriesCollection(2).Position.Order = 1 ' because the order is the same
End With
End Sub

Private Sub Form_Resize()
MSChart1.Move ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight
End Sub
0

Author Commented:
i figured out how 2 do it (i was using Actuate so couldn't do it normally) but i thought i'd give u the points anyway since u had such a rad answer :-)
0

Commented:
Thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.