#vb.net #oxyplot
#vb.net #oxyplot
Вопрос:
Я пытаюсь отобразить данные из файла csv в виде комбинации контурных и тепловых карт. CSV-файл состоит из трех столбцов:
x;y;z
1;1;1
2;1;1
3;1;2
4;1;2
5;1;2
6;1;2
7;1;2
8;1;1
9;1;1
10;1;1
1;2;1
2;2;1
3;2;2
4;2;4
5;2;4
Etc…
После прочтения csv я конвертирую его в массивы и использую их в качестве источника данных для серий тепловых карт и серий контуров OxyPlot в соответствии с примерами, которые я смог найти. К сожалению, они есть только в C #. Надеюсь, кто-нибудь может помочь с VB. До сих пор я создавал список ниже, однако результат не представляет данные, которые у меня есть в csv.
Dim dt_table As DataTable = csvToDatatable_2(Application.StartupPath amp; "test.csv", ";")
Dim x(dt_table.Rows.Count - 1) As Double
Dim y(dt_table.Rows.Count - 1) As Double
Dim numbers(dt_table.Rows.Count - 1, 2) As Double
For i = 0 To dt_table.Rows.Count - 1
x(i) = CDbl(dt_table.Rows(i)(0))
y(i) = CDbl(dt_table.Rows(i)(1))
numbers(i, 0) = CDbl(dt_table.Rows(i)(0))
numbers(i, 1) = CDbl(dt_table.Rows(i)(1))
numbers(i, 2) = CDbl(dt_table.Rows(i)(2))
Next
Dim Plotmodel As New OxyPlot.PlotModel
Dim linearColorAxis As New OxyPlot.Axes.LinearColorAxis()
linearColorAxis.Palette = OxyPalettes.Rainbow(10)
Plotmodel.Axes.Add(linearColorAxis)
Dim heatmapseries1 As New OxyPlot.Series.HeatMapSeries
heatmapseries1.X0 = 0
heatmapseries1.X1 = 10
heatmapseries1.Y0 = 0
heatmapseries1.Y1 = 10
heatmapseries1.Interpolate = True
heatmapseries1.Data = numbers
Dim contourSeries1 As New OxyPlot.Series.ContourSeries()
contourSeries1.LineStyle = LineStyle.Solid
contourSeries1.StrokeThickness = 2
contourSeries1.ContourColors = {OxyColors.Aquamarine, OxyColors.Aqua, OxyColors.CadetBlue, OxyColors.Blue, OxyColors.Black, OxyColors.Red}
contourSeries1.RowCoordinates = x
contourSeries1.ColumnCoordinates = y
contourSeries1.Data = numbers
Plotmodel.Series.Add(heatmapseries1)
Plotmodel.Series.Add(contourSeries1)
PlotView1.Model = Plotmodel