|
|
|
@ -0,0 +1,92 @@ |
|
|
|
|
using LiveCharts; |
|
|
|
|
using LiveCharts.Defaults; |
|
|
|
|
using LiveCharts.Wpf; |
|
|
|
|
using System; |
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
using System.Linq; |
|
|
|
|
using System.Text; |
|
|
|
|
using System.Threading.Tasks; |
|
|
|
|
using System.Windows; |
|
|
|
|
using System.Windows.Controls; |
|
|
|
|
using System.Windows.Data; |
|
|
|
|
using System.Windows.Documents; |
|
|
|
|
using System.Windows.Input; |
|
|
|
|
using System.Windows.Media; |
|
|
|
|
using System.Windows.Media.Imaging; |
|
|
|
|
using System.Windows.Shapes; |
|
|
|
|
|
|
|
|
|
namespace Tutorial.BasicPlots |
|
|
|
|
{ |
|
|
|
|
/// <summary> |
|
|
|
|
/// ScatterWindow.xaml에 대한 상호 작용 논리 |
|
|
|
|
/// </summary> |
|
|
|
|
public partial class ScatterWindow : Window |
|
|
|
|
{ |
|
|
|
|
private readonly int SERIES_SIZE = 100; |
|
|
|
|
|
|
|
|
|
private ChartValues<ObservablePoint> _valueA = new ChartValues<ObservablePoint>(); |
|
|
|
|
private ChartValues<ObservablePoint> _valueB = new ChartValues<ObservablePoint>(); |
|
|
|
|
private ChartValues<ObservablePoint> _valueC = new ChartValues<ObservablePoint>(); |
|
|
|
|
|
|
|
|
|
public SeriesCollection SeriesCollection { get; set; } |
|
|
|
|
|
|
|
|
|
public ScatterWindow() |
|
|
|
|
{ |
|
|
|
|
InitializeComponent(); |
|
|
|
|
InitInstance(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void InitInstance() |
|
|
|
|
{ |
|
|
|
|
Random rand = new Random(); |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < SERIES_SIZE; i++) |
|
|
|
|
{ |
|
|
|
|
_valueA.Add(new ObservablePoint(rand.NextDouble() * 10, rand.NextDouble() * 10)); |
|
|
|
|
_valueB.Add(new ObservablePoint(rand.NextDouble() * 10, rand.NextDouble() * 10)); |
|
|
|
|
_valueC.Add(new ObservablePoint(rand.NextDouble() * 10, rand.NextDouble() * 10)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SeriesCollection = new SeriesCollection() |
|
|
|
|
{ |
|
|
|
|
new ScatterSeries() |
|
|
|
|
{ |
|
|
|
|
Title = "Series A", |
|
|
|
|
Values = _valueA, |
|
|
|
|
}, |
|
|
|
|
new ScatterSeries() |
|
|
|
|
{ |
|
|
|
|
Title = "Series B", |
|
|
|
|
Values = _valueB, |
|
|
|
|
PointGeometry = DefaultGeometries.Diamond |
|
|
|
|
}, |
|
|
|
|
new ScatterSeries() |
|
|
|
|
{ |
|
|
|
|
Title = "Series C", |
|
|
|
|
Values = _valueC, |
|
|
|
|
PointGeometry = DefaultGeometries.Triangle, |
|
|
|
|
Stroke = Brushes.Transparent |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
DataContext = this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void btnRandomize_Click(object sender, RoutedEventArgs e) |
|
|
|
|
{ |
|
|
|
|
Random rand = new Random(); |
|
|
|
|
for (int i = 0; i < SERIES_SIZE; i++) |
|
|
|
|
{ |
|
|
|
|
_valueA[i].X = rand.NextDouble() * 10; |
|
|
|
|
_valueA[i].Y = rand.NextDouble() * 10; |
|
|
|
|
|
|
|
|
|
_valueB[i].X = rand.NextDouble() * 10; |
|
|
|
|
_valueB[i].Y = rand.NextDouble() * 10; |
|
|
|
|
|
|
|
|
|
_valueC[i].X = rand.NextDouble() * 10; |
|
|
|
|
_valueC[i].Y = rand.NextDouble() * 10; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |