Tuesday
March 28, 2017

Post a New Question

Posted by on .

This problem is creating code for a line chart.

- Write a program to create the line chart. Use Table in 9.6:

Table 9.6] Two -year college enrollments (in thousands).

1960 1970 1980 1990 2000
----------------------------------
Male 283 1375 2047 2233 2398
Female 170 945 2479 3007 3358
___________________________________

This is my code: It works but it does not draw the Line with dots. I can't figure it out. Could you help me figure it out? Please

Public Class frmLineChart

Private Sub btnDisplay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisplay.Click
Dim quantity() As String = {283, 1375, 2047, 2233, 2398, _
170, 945, 2479, 3007, 3358}
Dim gr As Graphics = picBox.CreateGraphics
Dim strVar As String = "Male"
gr.DrawString(strVar, Me.Font, Brushes.Green, 50, 75)
gr.DrawString("Female", Me.Font, Brushes.Orange, 165, 5)
'The picture box has width 210 and height 150
gr.DrawLine(Pens.Black, 40, 110, picBox.Width, 110) 'Draw x-axis
gr.DrawLine(Pens.Black, 40, 110, 40, 1) 'Draw y-axis
gr.DrawLine(Pens.Green, 60, 105, 365, -80) 'Draw tick mark
gr.DrawLine(Pens.Orange, 65, 105, 330, -75) 'Draw tick marks
gr.DrawString("3358", Me.Font, Brushes.Black, 10, 5)

For i As Integer = 0 To quantity.GetUpperBound(0)
gr.DrawLines(Pens.Green, 1199 + i * 40, _
(110 - quantity(i) / 2), 20, quantity(i) / 2)
Next

gr.DrawString("1960 1970 1980 1990 2000", Me.Font, _
Brushes.Black, 50, 115)
gr.DrawString("Two-year college enrollments (in thousands).", Me.Font, _
Brushes.Black, 40, 135)

End Sub
End Class

  • VB programming - ,

    Not sure if you have the latest version of code, because it doesn't compile.
    Inside of the for-loop, you have DrawLines instead of DrawLine, and the calculations have to be cast as integers.

    Once that's done, the axes seem to show properly, which means that you understand how the DrawLine function works.

    Then you need to calculate the starting and end points of each line segment, not forgetting that for a line chart, the end-point of one segment is the beginning of another segment. Right now, the lines are not joining each other.
    Also, the size of the picBox is probably left to default. Since you are "hardcoding" the axes, you may want to define the size of the picBox inside the sub-program using picBox.width=.... etc.

    Give it another try. You're not far.

  • VB programming - ,

    Okay, I understand what you've advised somewhat, but was wondering if you can give a simple example of the line segments. I kind of based this off of a bar chart I created. Thanks..

  • VB programming - ,

    maximum value called

Answer This Question

First Name:
School Subject:
Answer:

Related Questions

More Related Questions

Post a New Question