У меня есть приложение WPF, в котором мне нужно визуализировать y = y(x1, x2), где x1, x2 — линейные координаты. Я могу сделать это с помощью HeatMapSeries в Oxyplot, но когда я хочу отобразить два набора данных в одном окне, тепловые карты не являются подходящим инструментом. Лучше бы пару контурных серий. Теперь я попытался добиться этого тем же способом, что и с HeatMapSeries, и это сработало очень хорошо:
public void PlotHeatMap (){
OxyPlot.PlotModel model = new PlotModel { Title = "2-D data" };
model.Axes.Add( new OxyPlot.Axes.LinearColorAxis {
Position = OxyPlot.Axes.AxisPosition.Right,
Palette = OxyPalettes.Jet( 500 ),
HighColor = OxyColors.Gray,
LowColor = OxyColors.Black } );
OxyPlot.Series.HeatMapSeries heatmap = new OxyPlot.Series.HeatMapSeries {
Data = ( Double[ , ] )data,
X0 = x1min,
X1 = x1max,
Y0 = x2min,
Y1 = x2max
};
model.Series.Add( heatmap );
}
Теперь, когда я пытаюсь вместо этого использовать ContourSeries, я просто заменяю HeatMapSeries на ContourSeries:
public void PlotContour (){
OxyPlot.PlotModel model = new PlotModel { Title = "2-D data" };
model.Axes.Add( new OxyPlot.Axes.LinearColorAxis {
Position = OxyPlot.Axes.AxisPosition.Right,
Palette = OxyPalettes.Jet( 500 ),
HighColor = OxyColors.Gray,
LowColor = OxyColors.Black } );
OxyPlot.Series.ContourSeries contour = new OxyPlot.Series.ContourSeries {
ColumnCoordinates = arrayFromMinToMax1,
RowCoordinates = arrayFromMinToMax2,
ContourLevels = arrayOfLevels,
ContourColors = arrayOfColors, // Same # elements as the levels' array
Data = ( Double[ , ] )data
};
model.Series.Add( contour );
}
Это просто производит вывод:
Оси x и y есть и соответствуют минимальным и максимальным координатам, но я не вижу контурных линий. Подозреваю, что с настройкой Оси чего-то не хватает (должно быть так же, как и для HeatMapSeries??). Я не знаю, как поступить с этим контурным графиком. Есть ли примеры, кроме, например, ContourSeriesExamples на GitHub?
Спасибо за любую помощь!
ColumnCoordinates = arrayFromMinToMax2
иRowCoordinates = arrayFromMinToMax1
? - person Anders Gustafsson   schedule 18.05.2015ContourSeries
сам определяет уровни и цвета, т.е. удалите свойстваContourLevels
иContourColors
из инициализатора и посмотрите, даст ли это какой-либо улучшенный результат. - person Anders Gustafsson   schedule 19.05.2015ContourSeries
работать для этого, а затем перейти к исходному набору данных? Кстати, а зачем нужно приводитьdata
кdouble[,]
? - person Anders Gustafsson   schedule 19.05.2015LinearColorAxis
к вашемуPlotModel
, когда вы рисуетеContourSeries
. Кроме того, не могли бы вы где-нибудь опубликовать массивdata
, например. как Gist на Github или на ideone.com? Может быть, потоки данных усложняют работу генератора контуров? - person Anders Gustafsson   schedule 19.05.2015