如何使用列表框值绘制折线图
how to draw line graph using listbox values
我一直在寻找问题的答案,但我尝试过的所有代码都不适合我,所以我决定寻求帮助。
我是 VB.net 制作图表的新手,我的老板想要结果(在昨天之前)所以我没有时间深入研究如何制作图表。
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim a As Double
Dim b As String
b = RichTextBox1.Text
a = Convert.ToDouble(b)
'Chart1.DataBindTable(b)
' Chart1.(RichTextBox1.Text)
'Chart1.Series("Series1").Points.DataBindY(RichTextBox1.Text)
'Convert.ToInt32(b, 0)
Chart1.DataSource = RichTextBox1.Text
'Chart1.Series("Series1").Points.DataBindY(RichTextBox1.Text)
'Chart1.Series("Series1").Points.AddY(b)
'Chart1.Series("Series1").YValueMembers = b
Me.Chart1.Series("Series1").Points.AddY(a)
'MsgBox(RichTextBox1.Text)
MsgBox(a)
'Me.Chart1.Series("Series1").Points.InsertY(b)
Me.Refresh()
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
End Sub
我想画一个折线图。
我有一个包含 10 个数字和一个按钮的列表框。我想根据这些数字制作折线图。
我也尝试使用 richtextbox 而不是列表框,但没有成功。
我想得到像附图这样的东西。
非常感谢您的帮助。
sample made in excel
--更新---
在下面提供的代码的点区域中替换此部分
Dim x2 As Integer = 0 ' Keep a track of index
For Each i As Integer In ListBox1.Items
' create a Point with index as x and the actual value of list item as y
s.Points.AddXY(Convert.toDouble(x2), Convert.toDouble(i))
x2 = x2+1
Next
图表应该是这样的
Chart1.Series.Clear() 'Empty your chart of any previous values
Chart1.Titles.Add("My Line chart") 'Add a Title
Dim s As New Series 'Create a new series
s.Name = "My Line" 'Series name
s.ChartType = SeriesChartType.Line 'Chart type
'Most important part, the points to plot
'Points START
s.Points.AddXY(1, 2)
s.Points.AddXY(3, 4)
s.Points.AddXY(5, 9)
'Points END
'Add the series to the Chart1 control
Chart1.Series.Add(s)
我不确定您为什么要使用 RichTextBox1。如果您正在收集用户输入的 (x,y) 点,那么您将需要构建您的点。
使用 TextBox
控件而不是 RichText
,根据给定的描述应该足够了。
将上面代码中的 Points 位替换为
'Assume the user is entering value/numbers separated by ","
'Use the input as both x and y
'e.g 1,2,3,...
Dim textCont As String = TextBox.Text
Dim boxValues As String() = textCont.Split(New Char() {","})
For Each item In boxValues
s.Points.AddXY(Convert.toDouble(item), Convert.toDouble(item))
s.Points.AddXY(Convert.toDouble(item), Convert.toDouble(item))
s.Points.AddXY(Convert.toDouble(item), Convert.toDouble(item))
Next
就您提供的代码而言,本示例中没有 ListBox
控件或参考。
这是修改后的 form2
Public Class X_axis_chart
Private Sub X_axis_chart_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim a As Integer
ListBox1.Items.Clear()
For a = 0 To Main.ListBox2.Items.Count - 1 Step 1
ListBox1.Items.Add(Main.ListBox2.Items.Item(a).ToString)
Next
'Chart1.Series("X axis").Points.DataBindY(ListBox1.Text)
Chart1.Series("X axis").Points.AddXY("Text", ListBox1.Text)
End Sub
结束Class
我一直在寻找问题的答案,但我尝试过的所有代码都不适合我,所以我决定寻求帮助。 我是 VB.net 制作图表的新手,我的老板想要结果(在昨天之前)所以我没有时间深入研究如何制作图表。
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim a As Double
Dim b As String
b = RichTextBox1.Text
a = Convert.ToDouble(b)
'Chart1.DataBindTable(b)
' Chart1.(RichTextBox1.Text)
'Chart1.Series("Series1").Points.DataBindY(RichTextBox1.Text)
'Convert.ToInt32(b, 0)
Chart1.DataSource = RichTextBox1.Text
'Chart1.Series("Series1").Points.DataBindY(RichTextBox1.Text)
'Chart1.Series("Series1").Points.AddY(b)
'Chart1.Series("Series1").YValueMembers = b
Me.Chart1.Series("Series1").Points.AddY(a)
'MsgBox(RichTextBox1.Text)
MsgBox(a)
'Me.Chart1.Series("Series1").Points.InsertY(b)
Me.Refresh()
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
End Sub
我想画一个折线图。
我有一个包含 10 个数字和一个按钮的列表框。我想根据这些数字制作折线图。
我也尝试使用 richtextbox 而不是列表框,但没有成功。
我想得到像附图这样的东西。
非常感谢您的帮助。 sample made in excel
--更新--- 在下面提供的代码的点区域中替换此部分
Dim x2 As Integer = 0 ' Keep a track of index
For Each i As Integer In ListBox1.Items
' create a Point with index as x and the actual value of list item as y
s.Points.AddXY(Convert.toDouble(x2), Convert.toDouble(i))
x2 = x2+1
Next
图表应该是这样的
Chart1.Series.Clear() 'Empty your chart of any previous values
Chart1.Titles.Add("My Line chart") 'Add a Title
Dim s As New Series 'Create a new series
s.Name = "My Line" 'Series name
s.ChartType = SeriesChartType.Line 'Chart type
'Most important part, the points to plot
'Points START
s.Points.AddXY(1, 2)
s.Points.AddXY(3, 4)
s.Points.AddXY(5, 9)
'Points END
'Add the series to the Chart1 control
Chart1.Series.Add(s)
我不确定您为什么要使用 RichTextBox1。如果您正在收集用户输入的 (x,y) 点,那么您将需要构建您的点。
使用 TextBox
控件而不是 RichText
,根据给定的描述应该足够了。
将上面代码中的 Points 位替换为
'Assume the user is entering value/numbers separated by ","
'Use the input as both x and y
'e.g 1,2,3,...
Dim textCont As String = TextBox.Text
Dim boxValues As String() = textCont.Split(New Char() {","})
For Each item In boxValues
s.Points.AddXY(Convert.toDouble(item), Convert.toDouble(item))
s.Points.AddXY(Convert.toDouble(item), Convert.toDouble(item))
s.Points.AddXY(Convert.toDouble(item), Convert.toDouble(item))
Next
就您提供的代码而言,本示例中没有 ListBox
控件或参考。
这是修改后的 form2
Public Class X_axis_chart
Private Sub X_axis_chart_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim a As Integer
ListBox1.Items.Clear()
For a = 0 To Main.ListBox2.Items.Count - 1 Step 1
ListBox1.Items.Add(Main.ListBox2.Items.Item(a).ToString)
Next
'Chart1.Series("X axis").Points.DataBindY(ListBox1.Text)
Chart1.Series("X axis").Points.AddXY("Text", ListBox1.Text)
End Sub
结束Class