首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加数组中的数据。

问添加数组中的数据。
EN

Stack Overflow用户
提问于 2015-08-06 09:22:17
回答 1查看 3K关注 0票数 1

我有一个包含42个双值(double[] data = new double[42];)的数组。现在,我想用矛盾图来可视化这些数据,但我不知道如何做到这一点,因为在网站上给出了以下示例:

代码语言:javascript
复制
    public class MainViewModel
    {
        public MainViewModel()
        {
            this.Title = "Example 2";
            this.Points = new List<DataPoint>
                              {
                                  new DataPoint(0, 4),
                                  new DataPoint(10, 13),
                                  new DataPoint(20, 15),
                                  new DataPoint(30, 16),
                                  new DataPoint(40, 12),
                                  new DataPoint(50, 12)
                              };
        }

        public string Title { get; private set; }

        public IList<DataPoint> Points { get; private set; }
    }

我还必须可视化另一个具有16'064双值的数组。我想您可以想象,我正在寻找一种尽可能简单的方法,例如使用Sinus函数的下一个例子:

Sinus-示例

代码语言:javascript
复制
// Adding data (FunctionSeries) to the Chart
            chart1.Series.Add(new FunctionSeries(Math.Sin, 0, 30, 0.1, "sin(x)"));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-06 09:41:52

您必须将数组设置为ObservableCollection,并将其作为itemsSource绑定到系列图表中。

例如,如果您想要绘制LineSeries,那么:

代码语言:javascript
复制
 <OxyPlot:PlotView Name="lineChart" Background="Transparent" IsHitTestVisible="False"  DisconnectCanvasWhileUpdating="True" PlotMargins="75 2 2 25">
                <OxyPlot:PlotView.Axes>
                    <OxyPlot:DateTimeAxis Name="xAxis" Position="Bottom" StringFormat="mm:ss" MajorGridlineStyle="Solid" IsZoomEnabled="False" IsPanEnabled="False" />
                    <OxyPlot:LinearAxis Name="yAxis" Position="Left" MajorGridlineStyle="Solid" IsZoomEnabled="False" IntervalLength="15" IsPanEnabled="False" />

                </OxyPlot:PlotView.Axes>
                <OxyPlot:PlotView.Series>
                    <OxyPlot:LineSeries DataFieldX="XValue" DataFieldY="YValue" ItemsSource="{Binding lineSeries1ItemsSource}" MarkerType="Circle"  MarkerSize="2.2" Background="#FFEBEBEB" />
                    <OxyPlot:LineSeries DataFieldX="XValue" DataFieldY="YValue" 
                </OxyPlot:PlotView.Series>
 </OxyPlot:PlotView>

在密码中:

代码语言:javascript
复制
// Observable Collection of type Chart Data for binding to First Line Series in the Chart
        public ObservableCollection<ChartData> lineSeries1ItemsSource { get; set; }
// List for adding all the Observable Collections bound as ItemsSource for Line Series
        public ObservableCollection<ObservableCollection<ChartData>> lstItemsSource;

  public ucLineSeriesChart()
        {
            InitializeComponent();

            // Set the Data Context to current instance
            this.DataContext = this;

            // Instanciate List object
            lstItemsSource = new ObservableCollection<ObservableCollection<ChartData>>();

            // Instanciate Observable Collections
            lineSeries1ItemsSource = new ObservableCollection<ChartData>();


            // Add the Observable Collections to the List
            lstItemsSource.Add(lineSeries1ItemsSource);

        }

ChartData类:

代码语言:javascript
复制
 public class ChartData : INotifyPropertyChanged
    {                
        //Event that is raised when the value of some property changes
        public event PropertyChangedEventHandler PropertyChanged;

        /// <summary>
        ///  Property for XValue of Line Series
        /// </summary>
        public DateTime XValue
        {
            get
            {
                return _xValue;
            }
            set
            {
                _xValue = value;
                OnPropertyChanged("XValue");
            }
        }

        /// <summary>
        /// Property for YValue of Line Series
        /// </summary>
        public double YValue
        {
            get
            {
                return _yValue;
            }
            set
            {
                _yValue = value;
                OnPropertyChanged("YValue");
            }
        }

        private void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }      
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31851797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档