Asked by Lee
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
- 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
Answers
Answered by
MathMate
Not sure if you have the latest version of code, because it doesn't compile.
Inside of the for-loop, you have DrawLine<b>s</b> 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.
Inside of the for-loop, you have DrawLine<b>s</b> 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.
Answered by
Stacy
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..
Answered by
kalpesh
maximum value called
There are no AI answers yet. The ability to request AI answers is coming soon!