2015-05-18 14 views
8

मेरे पास एक WPF एप्लिकेशन है जहां मुझे y = y (x1, x2) को देखने की आवश्यकता है जहां x1, x2 रैखिक निर्देशांक हैं। मैं ऑक्सीप्लॉट में हीटमैपरीज का उपयोग करके ऐसा कर सकता हूं, लेकिन जब मैं उसी विंडो में डेटा के दो सेट प्लॉट करना चाहता हूं, तो हीटमैप उचित टूल नहीं हैं। कुछ समोच्च श्रृंखला बेहतर होगी। अब, मैं 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); 
} 

Output from the HeatMapSeries

अब, जब मैं बजाय ContourSeries इस्तेमाल करने की कोशिश, मैं सिर्फ की जगह एक ContourSeries साथ HeatMapSeries:

:

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); 
} 

यह सिर्फ उत्पादन का उत्पादन 0

एक्स- और वाई-अक्ष वहां हैं, और न्यूनतम और अधिकतम निर्देशांक से मेल खाते हैं, लेकिन मैं कोई समोच्च रेखा नहीं देख सकता। मुझे संदेह है कि एक्सिस स्थापित करने में कुछ याद आ रही है (क्या यह हीटमैपरीज के समान होना चाहिए ??)। मुझे नहीं पता कि इस समोच्च साजिश के साथ कैसे आगे बढ़ना है। उदाहरण के अलावा अन्य उदाहरण हैं GitHub पर ContourSeriesExamples?

किसी भी मदद के लिए धन्यवाद!

+1

यह बस हो सकता है कि आप गलत क्षेत्र योजना बना रहे हैं? अपने समोच्च साजिश में अक्षों को देखते हुए वे गर्मी मानचित्र साजिश की तुलना में फ़्लिप किए जाते हैं। क्या होगा यदि आप इसके बजाय 'ColumnCoordinates = arrayFromMinToMax2' और' RowCoordinates = arrayFromMinToMax1' सेट करते हैं? –

+0

इंगित करने के लिए धन्यवाद, एंडर्स, लेकिन परिणाम वही है। हालांकि, मैंने छवि को अद्यतन किया। –

+0

यदि आप [HeatMapSeriesExamples] (https://github.com/oxyplot/oxyplot/blob/develop/Source/Examples/ExampleLibrary/Series/HeatMapSeriesExamples.cs#L27) देखते हैं तो यह समोच्चों के साथ एक ताप मानचित्र को भी जोड़ता है, इसलिए समोच्च वास्तव में सीधा होना चाहिए। 'कंटूररीज़' को स्तर और रंगों को स्वयं तय करने दें, यानी प्रारंभकर्ता से 'कंटूरलेवल' और 'कंटूर कॉलर्स' गुणों को हटा दें, और देखें कि इससे कोई बेहतर रीसेट होता है या नहीं। –

उत्तर

2

मुझे अंत में पता चला कि क्या गलत था - यह मेरी गलती थी! ColumnCoordinates और RowCoordinates सरणी DoubleArray Data के आकार से मेल खाना चाहिए! और मैंने यह सुनिश्चित नहीं किया कि वे थे। अब समोच्च और heatmap संरेखित! समर्थन के लिए एंडर्स धन्यवाद और मुझे अपने कोड में धक्का!

HeatMap with Contour

संबंधित मुद्दे

 संबंधित मुद्दे