以下函数为图形创建多个系列。
Function createSeries(ByVal fileNames() As String, ByVal intValXAxis As Integer, ByVal intValYAxis As Integer) As Series()
Dim ChartSeries(fileNames.Count) As Series
Dim i As Integer = 0
For Each filename In fileNames
ChartSeries(i) = New Series
ChartSeries(i).ChartType = SeriesChartType.FastLine
ChartSeries(i).ChartArea = "ChartArea1"
If filename.Contains("NOK") = True Then
ChartSeries(i).Color = Color.Red
ChartSeries(i).BorderWidth = 3
Else
ChartSeries(i).Color = Color.Green
End If
Dim fileReader = My.Computer.FileSystem.OpenTextFileReader(filename)
Do
Dim strCache() As String = Split(fileReader.ReadLine(), ";")
ChartSeries(i).Points.AddXY(strCache(intValXAxis - 1), strCache(intValYAxis - 1))
ChartSeries(i).ToolTip = filename
Loop Until fileReader.EndOfStream = True
i += 1
Next
Return ChartSeries
End Function
我遇到的问题是,我创建的系列的Y值大多是这样的:0,09440104或0,1757813。我需要在图表上显示这些值,但是零被删除,Y点值是:9440104或1757813
在将它们添加到系列之前,我尝试使用“全球化”格式化它们,但它并没有解决问题。
为了清楚起见:我希望上面显示的数字(0,09440104和0,1757813)是这些点的Y值。
我该如何解决这个问题?
提前致谢。
答案 0 :(得分:2)
默认情况下,En-US
culture会将您的逗号","
读为千位分隔符,从而将您的数据设为> 0
而不是< 0
。
您有两种选择:更改文化或更改字符串格式。如果您的所有数字都小于1000
(或者更准确地说,没有.
千分隔符),我建议您只需将,
替换为.
Dim strCache() As String = Split(fileReader.ReadLine(), ";")
Dim repStrX = strCache(intValXAxis - 1).Replace(",",".")
Dim repStrY = strCache(intValYAxis - 1).Replace(",",".")
ChartSeries(i).Points.AddXY(repStrX , repStrY)
或者,如果它们的值超过1000
(或者,更准确地说,没有.
为千分隔符),而没有指定文化,您也可以使用{{ 1}}有一些技巧:利用不存在的字符作为中间值,在原始Replace
中的.
和,
之间翻转。
string