柱形图 - 为 X 轴设置字符串标签
Column Chart - Set string labels for X axis
这一定是微不足道的,但我在网上找不到任何东西。
我有一个简单的数据表 dtChart,其中包含 3 列(字符串、int32、int32)作为数据源附加到 Chart1(两个系列)并为 YValueMembers 设置整数。图表显示良好,到目前为止还不错,但一些比例数字低于列。
Chart1.ChartAreas(0).AxisX.LabelStyle.Interval = 1
在所有列上显示标签,但带有零。
当我尝试将 XValueMember 设置为 dtCharts 中的第一个字符串列时(1 个或两个系列):
Chart1.Series(0).XValueMember = "ProcesName"
...然后图表绘制失败(出现带十字的红色矩形)
我也试过这个:
Chart1.Series(0).AxisLabel = "#VALX"
...没有任何进展。
如何在数据绑定图表中设置 X 轴的标签?
编辑:顺便说一下,我知道我可以浏览积分集合并为每个积分分别设置标签,但我认为这是一种解决方法,而不是解决方案。必须有一种直接使用绑定列的方法,一种 "DisplayMember".
只需在窗体上放置一个新的图表控件并使用这样的代码在图表中显示数据:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
Me.Chart1.DataSource = GetData()
Me.Chart1.Series.Clear()
Chart1.ChartAreas.Clear()
Chart1.ChartAreas.Add("Area0")
Me.Chart1.Series.Add("Math")
Me.Chart1.Series.Add("Physics")
Chart1.Series(0).XValueMember = "Name"
Chart1.Series(0).YValueMembers = "Math"
Chart1.Series(0).IsValueShownAsLabel = True
Chart1.ChartAreas(0).AxisX.LabelStyle.Angle = -90
Chart1.Series(1).XValueMember = "Name"
Chart1.Series(1).YValueMembers = "Physics"
Chart1.Series(1).IsValueShownAsLabel = True
End Sub
Public Function GetData() As DataTable
Dim dt = New DataTable()
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Math", GetType(Integer))
dt.Columns.Add("Physics", GetType(Integer))
dt.Rows.Add("Alex", 12, 17)
dt.Rows.Add("Richard", 19, 20)
dt.Rows.Add("Alice", 14, 16)
Return dt
End Function
结果将是这张图表:
这一定是微不足道的,但我在网上找不到任何东西。
我有一个简单的数据表 dtChart,其中包含 3 列(字符串、int32、int32)作为数据源附加到 Chart1(两个系列)并为 YValueMembers 设置整数。图表显示良好,到目前为止还不错,但一些比例数字低于列。
Chart1.ChartAreas(0).AxisX.LabelStyle.Interval = 1
在所有列上显示标签,但带有零。 当我尝试将 XValueMember 设置为 dtCharts 中的第一个字符串列时(1 个或两个系列):
Chart1.Series(0).XValueMember = "ProcesName"
...然后图表绘制失败(出现带十字的红色矩形) 我也试过这个:
Chart1.Series(0).AxisLabel = "#VALX"
...没有任何进展。
如何在数据绑定图表中设置 X 轴的标签?
编辑:顺便说一下,我知道我可以浏览积分集合并为每个积分分别设置标签,但我认为这是一种解决方法,而不是解决方案。必须有一种直接使用绑定列的方法,一种 "DisplayMember".
只需在窗体上放置一个新的图表控件并使用这样的代码在图表中显示数据:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
Me.Chart1.DataSource = GetData()
Me.Chart1.Series.Clear()
Chart1.ChartAreas.Clear()
Chart1.ChartAreas.Add("Area0")
Me.Chart1.Series.Add("Math")
Me.Chart1.Series.Add("Physics")
Chart1.Series(0).XValueMember = "Name"
Chart1.Series(0).YValueMembers = "Math"
Chart1.Series(0).IsValueShownAsLabel = True
Chart1.ChartAreas(0).AxisX.LabelStyle.Angle = -90
Chart1.Series(1).XValueMember = "Name"
Chart1.Series(1).YValueMembers = "Physics"
Chart1.Series(1).IsValueShownAsLabel = True
End Sub
Public Function GetData() As DataTable
Dim dt = New DataTable()
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Math", GetType(Integer))
dt.Columns.Add("Physics", GetType(Integer))
dt.Rows.Add("Alex", 12, 17)
dt.Rows.Add("Richard", 19, 20)
dt.Rows.Add("Alice", 14, 16)
Return dt
End Function
结果将是这张图表: