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
JoanaAsked:
Who is Participating?
 
adgConnect With a Mentor 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)

Private Sub Form_Load()
    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
 
glass_cookieCommented:
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!

glass cookie : )
0
 
adgCommented:
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
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
adgCommented:
or more like this...?

' Example #2
Option Explicit
Private gArray(1 To 13, 1 To 6)
Private Sub Form_Load()
    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
 
adgCommented:
How about this one?

' Example #3

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

Private Sub Form_Load()
    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
 
JoanaAuthor 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
 
adgCommented:
Thanks!
0
All Courses

From novice to tech pro — start learning today.