我有一个包含42个双值(double[] data = new double[42];)的数组。现在,我想用矛盾图来可视化这些数据,但我不知道如何做到这一点,因为在网站上给出了以下示例:
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-示例
// Adding data (FunctionSeries) to the Chart
chart1.Series.Add(new FunctionSeries(Math.Sin, 0, 30, 0.1, "sin(x)"));发布于 2015-08-06 09:41:52
您必须将数组设置为ObservableCollection,并将其作为itemsSource绑定到系列图表中。
例如,如果您想要绘制LineSeries,那么:
<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>在密码中:
// 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类:
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));
}
}
}https://stackoverflow.com/questions/31851797
复制相似问题