void LogYWindow_Loaded(object sender, RoutedEventArgs e) { ChartPlotter plotter = new ChartPlotter(); plotter.Children.Add(new CursorCoordinateGraph()); plotter.DataTransform = new Log10YTransform(); VerticalAxis axis = new VerticalAxis { TicksProvider = new LogarithmNumericTicksProvider(10), LabelProvider = new UnroundingLabelProvider() }; plotter.MainVerticalAxis = axis; plotter.AxisGrid.DrawVerticalMinorTicks = true; const int count = 500; double[] xs = Enumerable.Range(1, count).Select(x => x * 0.01).ToArray(); EnumerableDataSource<double> xDS = xs.AsXDataSource(); var pows = xs.Select(x => Math.Pow(10, x)); var linear = xs.Select(x => x); var logXs = Enumerable.Range(101, count).Select(x => x * 0.01); var logarithmic = logXs.Select(x => Math.Log10(x)); plotter.AddLineGraph(pows.AsYDataSource().Join(xDS), "f(x) = 10^x"); plotter.AddLineGraph(linear.AsYDataSource().Join(xDS), "f(x) = x"); plotter.AddLineGraph(logarithmic.AsYDataSource().Join(logXs.AsXDataSource()), "f(x) = log(x)"); Content = plotter; }
public void VerticalAxisTest() { ChartPlotter plotter = new ChartPlotter(); IAxis expected = new VerticalAxis(); IAxis actual; plotter.VerticalAxis = expected; actual = plotter.VerticalAxis; Assert.AreEqual(expected, actual); }
public Window1() { InitializeComponent(); VerticalAxis axis = new VerticalAxis(); axis.SetConversion(0, 100, 100, 0); plotter.Children.Add(axis); // this is only an example of visible rectange. Use here rect you actually need. plotter.Viewport.Visible = new Rect(0, 0, 1, 100); }
public void VerticalAxisTest() { ChartPlotter plotter = new ChartPlotter(); var expected = new VerticalAxis(); GeneralAxis actual; plotter.MainVerticalAxis = expected; actual = plotter.MainVerticalAxis; Assert.AreEqual(expected, actual); Assert.IsTrue(plotter.Children.OfType<VerticalAxis>().Count() == 1); }
public void VerticalAxisIsDefaultTest() { ChartPlotter plotter = new ChartPlotter(); VerticalAxis axis = (VerticalAxis)plotter.VerticalAxis; VerticalAxis axis2 = new VerticalAxis(); plotter.Children.Add(axis2); Assert.AreEqual(plotter.VerticalAxis, axis); Assert.IsTrue(axis.IsDefaultAxis); axis2.IsDefaultAxis = true; Assert.AreEqual(plotter.VerticalAxis, axis2); Assert.IsFalse(axis.IsDefaultAxis); axis.IsDefaultAxis = true; Assert.AreEqual(plotter.VerticalAxis, axis); Assert.IsFalse(axis2.IsDefaultAxis); }
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: this.TimeControl = ((System.Windows.Controls.Label)(target)); return; case 2: this.preSelectIndex = ((System.Windows.Controls.ComboBox)(target)); #line 20 "..\..\..\..\Window\OnLineStatic.xaml" this.preSelectIndex.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.OnSelectionChanged); #line default #line hidden return; case 3: this.TControl = ((System.Windows.Controls.TextBox)(target)); return; case 4: this.plotter = ((Microsoft.Research.DynamicDataDisplay.ChartPlotter)(target)); return; case 5: this.yAxis = ((Microsoft.Research.DynamicDataDisplay.Charts.VerticalAxis)(target)); return; case 6: this.xAxis = ((Microsoft.Research.DynamicDataDisplay.Charts.DateTimeAxis)(target)); return; case 7: this.wnd_lower = ((System.Windows.Controls.StackPanel)(target)); return; } this._contentLoaded = true; }
void LogYWindow_Loaded(object sender, RoutedEventArgs e) { //ChartPlotter plotter = new ChartPlotter(); //plotter.Children.Add(new CursorCoordinateGraph()); //plotter.DataTransform = new Log10YTransform(); //VerticalAxis axis = new VerticalAxis //{ // TicksProvider = new LogarithmNumericTicksProvider(10), // LabelProvider = new UnroundingLabelProvider() //}; //plotter.MainVerticalAxis = axis; //plotter.AxisGrid.DrawVerticalMinorTicks = true; //const int count = 500; //double[] xs = Enumerable.Range(1, count).Select(x => x * 0.01).ToArray(); //EnumerableDataSource<double> xDS = xs.AsXDataSource(); //var pows = xs.Select(x => Math.Pow(10, x)); //var linear = xs.Select(x => x); //var logXs = Enumerable.Range(101, count).Select(x => x * 0.01); //var logarithmic = logXs.Select(x => Math.Log10(x)); //plotter.AddLineGraph(pows.AsYDataSource().Join(xDS), "f(x) = 10^x"); //plotter.AddLineGraph(linear.AsYDataSource().Join(xDS), "f(x) = x"); //plotter.AddLineGraph(logarithmic.AsYDataSource().Join(logXs.AsXDataSource()), "f(x) = log(x)"); //Content = plotter; ChartPlotter plotter = new ChartPlotter(); plotter.DataTransform = new Log10YTransform(); VerticalAxis yAxis = new VerticalAxis { TicksProvider = new LogarithmNumericTicksProvider(10), LabelProvider = new UnroundingLabelProvider() }; plotter.MainVerticalAxis = yAxis; plotter.AxisGrid.DrawVerticalMinorTicks = true; HorizontalDateTimeAxis xAxis = new HorizontalDateTimeAxis(); plotter.MainHorizontalAxis = xAxis; EnumerableDataSource<TPoint> edsPow = new EnumerableDataSource<TPoint>( Enumerable.Range(1, 2000).Select(s => new TPoint { X = DateTime.Now.AddYears(-20).AddDays(s), Y = Math.Pow(10, s / 5000.0) } ).ToList()); //edsPow.SetXYMapping(s => new Point(xax.ConvertToDouble(s.X), s.Y)); edsPow.SetXMapping(s => xAxis.ConvertToDouble(s.X)); edsPow.SetYMapping(s => yAxis.ConvertToDouble(s.Y)); edsPow.AddMapping(ShapeElementPointMarker.ToolTipTextProperty, s => String.Format("Vol:{0}\r\nOn:{1}", s.Y, s.X.ToShortDateString())); EnumerableDataSource<TPoint> edsLinear = new EnumerableDataSource<TPoint>( Enumerable.Range(1, 2000).Select(s => new TPoint { X = DateTime.Now.AddYears(-20).AddDays(s), Y = s / 2000.0 } ).ToList()); //edsLinear.SetXYMapping(s => new Point(xax.ConvertToDouble(s.X), s.Y)); edsLinear.SetXMapping(s => xAxis.ConvertToDouble(s.X)); edsLinear.SetYMapping(s => yAxis.ConvertToDouble(s.Y)); edsLinear.AddMapping(ShapeElementPointMarker.ToolTipTextProperty, s => String.Format("Vol:{0}\r\nOn:{1}", s.Y, s.X.ToShortDateString())); edsLog10 = new EnumerableDataSource<TPoint>( Enumerable.Range(1, 2000).Select(s => new TPoint { X = DateTime.Now.AddYears(-20).AddDays(s), Y = Math.Log10(s) } ).Where(s => s.Y > 0).ToList()); //edsLog10.SetXYMapping(s => new Point(xax.ConvertToDouble(s.X), s.Y)); edsLog10.SetXMapping(s => xAxis.ConvertToDouble(s.X)); edsLog10.SetYMapping(s => yAxis.ConvertToDouble(s.Y)); edsLog10.AddMapping(ShapeElementPointMarker.ToolTipTextProperty, s => String.Format("Vol:{0}\r\nOn:{1}", s.Y, s.X.ToShortDateString())); SolidColorBrush brushPow = new SolidColorBrush(Colors.Green); Pen linePenPow = new Pen(brushPow, 2.0); CircleElementPointMarker markerPow = new CircleElementPointMarker { Size = 4, Brush = brushPow, Fill = brushPow }; PenDescription descPow = new PenDescription("f(x) = 10 ^ x"); //var chartPow = plotter.AddLineGraph(edsPow, linePenPow, (ShapeElementPointMarker)null/*markerPow*/, descPow); SolidColorBrush brushLinear = new SolidColorBrush(Colors.Blue); Pen linePenLinear = new Pen(brushLinear, 2.0); CircleElementPointMarker markerLinear = new CircleElementPointMarker { Size = 4, Brush = brushLinear, Fill = brushLinear }; PenDescription descLinear = new PenDescription("f(x) = x"); //var chartLinear = plotter.AddLineGraph(edsLinear, linePenLinear, (ShapeElementPointMarker)null/*markerLinear*/, descLinear); SolidColorBrush brushLog10 = new SolidColorBrush(Colors.Red); Pen linePenLog10 = new Pen(brushLog10, 2.0); CircleElementPointMarker markerLog10 = new CircleElementPointMarker { Size = 4, Brush = brushLog10, Fill = brushLog10 }; PenDescription descLog10 = new PenDescription("f(x) = log(x)"); var chartLog10 = plotter.AddLineGraph(edsLog10, linePenLog10, (ShapeElementPointMarker)null/*markerLog10*/, descLog10); //plotter.Children.Add(new DataFollowChart(chartPow.LineGraph).WithProperty(c => //{ // c.Marker.SetValue(Shape.FillProperty, brushPow); // c.Marker.SetValue(Shape.StrokeProperty, brushPow.MakeDarker(0.2)); //})); //plotter.Children.Add(new DataFollowChart(chartLinear.LineGraph).WithProperty(c => //{ // c.Marker.SetValue(Shape.FillProperty, brushLinear); // c.Marker.SetValue(Shape.StrokeProperty, brushLinear.MakeDarker(0.2)); //})); plotter.Children.Add(new CursorCoordinateGraph()); ValueStore store = new ValueStore(); DataFollowChart dataFollowChart = new DataFollowChart(chartLog10.LineGraph); dataFollowChart.Marker.SetValue(Shape.FillProperty, brushLog10); dataFollowChart.Marker.SetValue(Shape.StrokeProperty, brushLog10.ChangeLightness(0.8)); dataFollowChart.MarkerPositionChanged += new EventHandler(dataFollowChart_MarkerPositionChanged); //dataFollowChart.CustomDataContextCallback = () => // { // if (dataFollowChart.ClosestPointIndex != -1) // { // var closestPoint = ((List<TPoint>)edsLog10.Data)[dataFollowChart.ClosestPointIndex]; // return store.SetValue("X", closestPoint.Y.ToString()).SetValue("Y", closestPoint.X.ToShortDateString()); // } // else return null; // }; #if true dataFollowChart.MarkerTemplate = (DataTemplate)FindResource("followMarkerTemplate"); #else dataFollowChart.MarkerAdjustCallback = marker => { Ellipse ellipse = (Ellipse)marker; var markerPosition = c.MarkerPosition; var date = xAxis.ConvertFromDouble(markerPosition.X); var y = yAxis.ConvertFromDouble(markerPosition.Y); ellipse.ToolTip = String.Format("Vol:{0}\r\nOn:{1}", y, date.ToShortDateString()); }; #endif plotter.Children.Add(dataFollowChart); Content = plotter; }
private void ChartPlotter_Loaded(object sender, RoutedEventArgs e) { if (!alreadyLoaded) { VerticalAxis = new VerticalAxis(); #region Different initialization if (settings.HorizontalAxisType == ChartPlotterSettings.AxisType.NumericAxis) { var h = new HorizontalAxis(); HorizontalAxis =h; } else HorizontalAxis = new HorizontalDateTimeAxis(); if (settings.IsButtonNavigationPresents) { buttonsNavigation = new buttonsNavigation(this); HoveringStackPanel.Children.Add(buttonsNavigation); } if (settings.IsLegendPresents) { legend = new Legend(this); ScrollWraper legendWraper = new ScrollWraper(legend); legendWraper.Margin = new Thickness(5, 10, 10, 10); HoveringStackPanel.Children.Add(legendWraper); } #endregion Children.Add(axisGrid); if (mouseNavigation!=null) Children.Add(mouseNavigation); MainCanvas.SizeChanged += new SizeChangedEventHandler(MainCanvas_SizeChanged); HoveringStackPanel.SizeChanged += new SizeChangedEventHandler(hoveringPanel_SizeChanged); Viewport.FitToView(); alreadyLoaded = true; } }
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: #line 11 "..\..\..\Window\HistoryStatic.xaml" ((Monitor.HistoryStatic)(target)).Loaded += new System.Windows.RoutedEventHandler(this.OnLoaded); #line default #line hidden #line 11 "..\..\..\Window\HistoryStatic.xaml" ((Monitor.HistoryStatic)(target)).GotFocus += new System.Windows.RoutedEventHandler(this.OnGotFocus); #line default #line hidden #line 11 "..\..\..\Window\HistoryStatic.xaml" ((Monitor.HistoryStatic)(target)).SizeChanged += new System.Windows.SizeChangedEventHandler(this.OnSizeChanged); #line default #line hidden return; case 2: this.preSelectIndex = ((System.Windows.Controls.ComboBox)(target)); #line 19 "..\..\..\Window\HistoryStatic.xaml" this.preSelectIndex.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.OnSelectionChanged); #line default #line hidden return; case 3: this.TControl = ((System.Windows.Controls.TextBox)(target)); return; case 4: this.startTime = ((Xceed.Wpf.Toolkit.DateTimePicker)(target)); return; case 5: this.endTime = ((Xceed.Wpf.Toolkit.DateTimePicker)(target)); return; case 6: #line 26 "..\..\..\Window\HistoryStatic.xaml" ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OnSerch); #line default #line hidden return; case 7: #line 27 "..\..\..\Window\HistoryStatic.xaml" ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OnSave); #line default #line hidden return; case 8: this.plotter = ((Microsoft.Research.DynamicDataDisplay.ChartPlotter)(target)); return; case 9: this.yAxis = ((Microsoft.Research.DynamicDataDisplay.Charts.VerticalAxis)(target)); return; case 10: this.xAxis = ((Microsoft.Research.DynamicDataDisplay.Charts.DateTimeAxis)(target)); return; case 11: this.LowerWnd = ((System.Windows.Controls.Border)(target)); return; case 12: this.PieLable = ((System.Windows.Controls.Label)(target)); return; case 13: this.chart = ((Visifire.Charts.Chart)(target)); return; } this._contentLoaded = true; }
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: this._topLevel = ((HistVol_StdDev_Calc.MainWindow)(target)); return; case 2: this.txtSymbol = ((System.Windows.Controls.TextBox)(target)); return; case 3: this.btnGetData = ((System.Windows.Controls.Button)(target)); #line 20 "..\..\MainWindow.xaml" this.btnGetData.Click += new System.Windows.RoutedEventHandler(this.btnGetData_Click); #line default #line hidden return; case 4: this.txtPeriod = ((System.Windows.Controls.TextBox)(target)); return; case 5: this.txtObservations = ((System.Windows.Controls.TextBox)(target)); return; case 6: this.Plotter = ((Microsoft.Research.DynamicDataDisplay.ChartPlotter)(target)); return; case 7: this.dateAxis = ((Microsoft.Research.DynamicDataDisplay.Charts.HorizontalDateTimeAxis)(target)); return; case 8: this.volAxis = ((Microsoft.Research.DynamicDataDisplay.Charts.VerticalAxis)(target)); return; } this._contentLoaded = true; }
private void DrawPlots() { HorizontalAxis xAxis = (HorizontalAxis)plotter.MainHorizontalAxis; xAxis.TicksProvider = new LogarithmNumericTicksProvider(10); xAxis.LabelProvider = new UnroundingLabelProvider(); xAxis.ShowMajorLabels = true; xAxis.ShowMinorTicks = true; xAxis.SnapsToDevicePixels = true; xAxis.LabelProvider.SetCustomFormatter(info => info.Tick.ToString("#.######e0")); HorizontalAxisTitle HAT = new HorizontalAxisTitle() { Content = _xAxisInfo.AxisTitle }; plotter.MainHorizontalAxis = xAxis; plotter.Children.Add(HAT); ((NumericAxis)plotter.MainHorizontalAxis).AxisControl.TicksPath.Stroke = Brushes.Blue; VerticalAxis yAxis = (VerticalAxis)plotter.MainVerticalAxis; yAxis.TicksProvider = new NumericTicksProvider(); yAxis.LabelProvider = new UnroundingLabelProvider(); yAxis.ShowMajorLabels = true; yAxis.ShowMinorTicks = true; yAxis.SnapsToDevicePixels = true; VerticalAxisTitle VAT = new VerticalAxisTitle() { Content = _yAxisInfoList[0].AxisTitle }; plotter.MainVerticalAxis = yAxis; plotter.Children.Add(VAT); plotter.AxisGrid.DrawVerticalMinorTicks = true; plotter.AxisGrid.DrawHorizontalMinorTicks = true; plotter.MainVerticalAxis.Background = new LinearGradientBrush(Colors.White, Colors.LightGray, 90); var xPoints = _xAxisInfo.AxisDataPoints.AsXDataSource(); // Create the main plot foreach (AxisInfo yAxInfo in _yAxisInfoList) { var yPoints = yAxInfo.AxisDataPoints.AsYDataSource(); CompositeDataSource plot = xPoints.Join(yPoints); plotter.AddLineGraph(plot, yAxInfo.PlotColor, yAxInfo.PlotLineThickness, yAxInfo.AxisLegend); } // add secondary y-axis plots if any exist if (_yAxisInfoSecList != null) { InjectedPlotter innerPlotter = new InjectedPlotter(); innerPlotter.SetViewportBinding = false; plotter.Children.Add(innerPlotter); HorizontalAxis ax = new HorizontalAxis(); ax.Placement = AxisPlacement.Top; ax.TicksProvider = new LogarithmNumericTicksProvider(10); ax.LabelProvider = new UnroundingLabelProvider(); ax.LabelProvider.SetCustomFormatter(info => info.Tick.ToString("#.######e0")); ax.ShowMajorLabels = true; ax.ShowMinorTicks = true; ax.SnapsToDevicePixels = true; ax.AxisControl.TicksPath.Stroke = Brushes.Red; plotter.Children.Add(ax); VerticalAxis yAxisSec = new VerticalAxis() { TicksProvider = new NumericTicksProvider(), LabelProvider = new UnroundingLabelProvider(), ShowMinorTicks = true, ShowMajorLabels = true, SnapsToDevicePixels = true, Placement = AxisPlacement.Right }; VerticalAxisTitle VATsecondary = new VerticalAxisTitle() { Content = _yAxisInfoSecList[0].AxisTitle, Placement = AxisPlacement.Right }; innerPlotter.MainVerticalAxis = yAxisSec; innerPlotter.Children.Add(VATsecondary); innerPlotter.MainVerticalAxis.Background = new LinearGradientBrush(Colors.White, Colors.Red, 90); foreach (AxisInfo yAxInfoSec in _yAxisInfoSecList) { var ySecPoints = yAxInfoSec.AxisDataPoints.AsYDataSource(); CompositeDataSource plotSec = xPoints.Join(ySecPoints); /*innerP*/ plotter.AddLineGraph(plotSec, yAxInfoSec.PlotColor, yAxInfoSec.PlotLineThickness, yAxInfoSec.AxisLegend); } } }
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: this.nameOfStockToSearch = ((System.Windows.Controls.TextBox)(target)); #line 7 "..\..\..\MainWindow.xaml" this.nameOfStockToSearch.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.nameOfStockToSearch_TextChanged); #line default #line hidden return; case 2: this.label1 = ((System.Windows.Controls.Label)(target)); return; case 3: this.downloadDataFromWeb = ((System.Windows.Controls.Button)(target)); #line 9 "..\..\..\MainWindow.xaml" this.downloadDataFromWeb.Click += new System.Windows.RoutedEventHandler(this.downloadDataFromWeb_Click); #line default #line hidden return; case 4: this.saveDataToDb = ((System.Windows.Controls.Button)(target)); #line 10 "..\..\..\MainWindow.xaml" this.saveDataToDb.Click += new System.Windows.RoutedEventHandler(this.saveDataToDb_Click); #line default #line hidden return; case 5: this.downloadAndSaveAll = ((System.Windows.Controls.Button)(target)); #line 11 "..\..\..\MainWindow.xaml" this.downloadAndSaveAll.Click += new System.Windows.RoutedEventHandler(this.downloadAndSaveAll_Click); #line default #line hidden return; case 6: this.searchRecordsForStock = ((System.Windows.Controls.TextBox)(target)); return; case 7: this.label2 = ((System.Windows.Controls.Label)(target)); return; case 8: this.getRecordsForStock = ((System.Windows.Controls.Button)(target)); #line 14 "..\..\..\MainWindow.xaml" this.getRecordsForStock.Click += new System.Windows.RoutedEventHandler(this.getRecordsForStock_Click); #line default #line hidden return; case 9: this.label3 = ((System.Windows.Controls.Label)(target)); return; case 10: this.label4 = ((System.Windows.Controls.Label)(target)); return; case 11: this.label5 = ((System.Windows.Controls.Label)(target)); return; case 12: this.label6 = ((System.Windows.Controls.Label)(target)); return; case 13: this.label7 = ((System.Windows.Controls.Label)(target)); return; case 14: this.label8 = ((System.Windows.Controls.Label)(target)); return; case 15: this.dataResult = ((System.Windows.Controls.TextBlock)(target)); return; case 16: this.label9 = ((System.Windows.Controls.Label)(target)); return; case 17: this.plotter = ((Microsoft.Research.DynamicDataDisplay.ChartPlotter)(target)); return; case 18: this.dateAxis = ((Microsoft.Research.DynamicDataDisplay.Charts.HorizontalDateTimeAxis)(target)); return; case 19: this.countAxis = ((Microsoft.Research.DynamicDataDisplay.Charts.VerticalAxis)(target)); return; case 20: this.button1 = ((System.Windows.Controls.Button)(target)); #line 37 "..\..\..\MainWindow.xaml" this.button1.Click += new System.Windows.RoutedEventHandler(this.clearChart_Click); #line default #line hidden return; } this._contentLoaded = true; }