// // Constructor // public ChartBox() { this.isHorizontalValues = false; this.isVerticalValues = false; this.isHorizontalGrid = false; this.isVerticalGrid = false; this.gridColor = Color.Gray; this.tickColor = Color.Green; this.textColor = Color.Gray; this.gridTextColor = Color.Black; this.frameColor = Color.Black; this.toolColor = Color.Black; this.iHGridLines = 0; this.iVGridLines = 0; Charts = new ChartCollection(); // // New in alpha-2 // isFixedPeriod = false; baseChartIndex = 0; // end this.Resize += new EventHandler(ChartBox_Resize); }
static void Main(string[] args) { // Instantiating a Workbook object Workbook workbook = new Workbook(); // Obtaining the reference of the first worksheet WorksheetCollection worksheets = workbook.Worksheets; Worksheet sheet = worksheets[0]; // Adding some sample value to cells Cells cells = sheet.Cells; Cell cell = cells["A1"]; cell.Value = 50; cell = cells["A2"]; cell.Value = 100; cell = cells["A3"]; cell.Value = 150; cell = cells["B1"]; cell.Value = 4; cell = cells["B2"]; cell.Value = 20; cell = cells["B3"]; cell.Value = 50; ChartCollection charts = sheet.Charts; // Adding a chart to the worksheet int chartIndex = charts.Add(ChartType.Pyramid, 5, 0, 15, 5); Chart chart = charts[chartIndex]; //Save the chart image file. chart.ToImage("AsposeChartImage.png", ImageFormat.Png); }
public override void Update() { var player = ServiceLocator.Current.GetInstance <SingletonStorageModel>().PlayerSelectedItem; var tournaments = ServiceLocator.Current.GetInstance <IDataService>().GetPlayerTournaments(player?.PlayerIds); var tournamentsOfStatistic = new HashSet <TournamentKey>(StorageModel .GetFilteredTournamentPlayerStatistic() .Select(x => new TournamentKey(x.PokersiteId, x.TournamentId)) .Distinct()); var filteredTournaments = tournaments.Where(x => tournamentsOfStatistic.Contains(x.BuildKey())).ToList(); var chartSeriesItems = new Dictionary <TournamentChartSeries, List <ChartSeriesItem> >(); UpdateBasedOnTournamentsSeries(chartSeriesItems, filteredTournaments); UpdateBasedOnStatisticSeries(chartSeriesItems, filteredTournaments); App.Current.Dispatcher.Invoke(() => ChartCollection.ForEach(x => x.ItemsCollection.Clear())); if (chartSeriesItems.Count > 0) { chartSeriesItems.Keys.ForEach(charSerie => { charSerie.ItemsCollection = new ObservableCollection <ChartSeriesItem>(chartSeriesItems[charSerie]); }); } }
private void UpdateBasedOnTournamentsSeries(Dictionary <TournamentChartSeries, List <ChartSeriesItem> > chartSeriesItems, IList <Tournaments> tournaments) { var chartItemDataBuilder = CreateTournamentChartItemDataBuilder(ChartDisplayRange); var tournamentRecords = chartItemDataBuilder.Create(tournaments, TournamentChartFilterType); foreach (var tournament in tournamentRecords) { foreach (var chartSerie in ChartCollection.Where(x => !x.IsBasedOnStatistic)) { ChartSeriesItem previousChartSeriesItem = null; ChartSeriesItem chartSeriesItem = null; if (!chartSeriesItems.ContainsKey(chartSerie)) { chartSeriesItems.Add(chartSerie, new List <ChartSeriesItem>()); } chartSeriesItem = new ChartSeriesItem { Format = chartSerie.Format, Category = tournament.Started, PointColor = chartSerie.ColorsPalette.PointColor, TrackBallColor = chartSerie.ColorsPalette.TrackBallColor, TooltipColor = chartSerie.ColorsPalette.TooltipColor, TooltipForegroundColor = chartSerie.ColorsPalette.TooltipForeground }; previousChartSeriesItem = chartSeriesItems[chartSerie].LastOrDefault(); chartSeriesItems[chartSerie].Add(chartSeriesItem); chartSerie.UpdateChartSeriesItemByTournament?.Invoke(chartSeriesItem, previousChartSeriesItem, tournament); } } }
public ChannelViewModel() { if (IsInDesignMode) { return; } //Subscribe to start stop events on main MainViewModel.Start += StartAcquisition; MainViewModel.Stop += StopAcquisition; //Set up char collections _plotData_live = new ChartCollection <double>(2000); _plotData_seal = new ChartCollection <double, double>(); //Create buffer with 1s worth of storage _liveDump = new ProducerConsumer <double>(HardwareSettings.DAQ.Rate); _sealTestDump = new ProducerConsumer <IndexedSample>(HardwareSettings.DAQ.Rate); _displayUpdater = new DispatcherTimer(); _displayUpdater.Tick += TimerEvent; _displayUpdater.Interval = new TimeSpan(0, 0, 0, 0, 5); _displayUpdater.Start(); RaisePropertyChanged(nameof(VC)); if (ClampModeChanged != null) { ClampModeChanged.Invoke(new ClampModeChangedArgs(ChannelIndex, VC ? DAQ.ClampMode.VoltageClamp : DAQ.ClampMode.CurrentClamp)); } }
private void Page_Load(object sender, System.EventArgs e) { _questionId = Information.IsNumeric(Request["QuestionId"]) ? int.Parse(Request["QuestionId"]) : -1; _filterId = Information.IsNumeric(Request["FilterId"]) ? int.Parse(Request["FilterId"]) : -1; _sortOrder = Request["SortOrder"] == null ? "ans" : Request["SortOrder"]; if (_questionId == -1) { Response.End(); } else if (!NSurveyUser.Identity.IsAdmin && !NSurveyUser.Identity.HasAllSurveyAccess) { if (!new Question().CheckQuestionUser(_questionId, NSurveyUser.Identity.UserId)) { Response.End(); } } ChartEngine engine = new ChartEngine(); ChartCollection charts = new ChartCollection(engine); engine.Size = new Size(700, 500); engine.Charts = charts; WebChart.ColumnChart chart = new WebChart.ColumnChart(); chart.Fill.Color = Color.FromArgb(98,94,238); chart.MaxColumnWidth = 80; chart.DataLabels.Visible = true; chart.DataLabels.Position = DataLabelPosition.Bottom; chart.DataLabels.ForeColor = Color.White; chart.Shadow.Visible = true; chart.DataLabels.NumberFormat ="0.00"; chart.ShowLineMarkers = true; SetQuestionData(engine, chart); SetMoreProperties(engine); charts.Add(chart); // send chart to browser Bitmap bmp; System.IO.MemoryStream memStream = new System.IO.MemoryStream(); bmp = engine.GetBitmap(); bmp.Save(memStream, System.Drawing.Imaging.ImageFormat.Png); memStream.WriteTo(Response.OutputStream); Response.End(); }
private void Page_Load(object sender, System.EventArgs e) { _questionId = Information.IsNumeric(Request["QuestionId"]) ? int.Parse(Request["QuestionId"]) : -1; _filterId = Information.IsNumeric(Request["FilterId"]) ? int.Parse(Request["FilterId"]) : -1; _sortOrder = Request["SortOrder"] == null ? "ans" : Request["SortOrder"]; if (_questionId == -1) { Response.End(); } else if (!NSurveyUser.Identity.IsAdmin && !NSurveyUser.Identity.HasAllSurveyAccess) { if (!new Question().CheckQuestionUser(_questionId, NSurveyUser.Identity.UserId)) { Response.End(); } } ChartEngine engine = new ChartEngine(); ChartCollection charts = new ChartCollection(engine); engine.Size = new Size(700, 500); engine.Charts = charts; WebChart.ColumnChart chart = new WebChart.ColumnChart(); chart.Fill.Color = Color.FromArgb(98, 94, 238); chart.MaxColumnWidth = 80; chart.DataLabels.Visible = true; chart.DataLabels.Position = DataLabelPosition.Bottom; chart.DataLabels.ForeColor = Color.White; chart.Shadow.Visible = true; chart.DataLabels.NumberFormat = "0.00"; chart.ShowLineMarkers = true; SetQuestionData(engine, chart); SetMoreProperties(engine); charts.Add(chart); // send chart to browser Bitmap bmp; System.IO.MemoryStream memStream = new System.IO.MemoryStream(); bmp = engine.GetBitmap(); bmp.Save(memStream, System.Drawing.Imaging.ImageFormat.Png); memStream.WriteTo(Response.OutputStream); Response.End(); }
public void Initialize() { _chartDescriptorWithData = Mock.Create<ChartPanel>(Constructor.Mocked, Behavior.Loose); var chartCollection = new ChartCollection(); _chartDescriptorWithData.Charts = chartCollection; var xChart = Mock.Create<XBarChart>(Constructor.Mocked, Behavior.Loose); Mock.Arrange(() => xChart.IsChild).Returns(true); xChart.DataSource = new MobileObservableCollection<SampleUnit> { CreateSample(1.0, 1.61, 1.36, 1.11, 7), CreateSample(1.0, 1.61, 1.36, 1.11, 7), CreateSample(0.8571428571428571, 1.61, 1.36, 1.11, 7), CreateSample(0.0, 1.61, 1.36, 1.11, 7), CreateSample(0.0, 1.61, 1.36, 1.11, 7), CreateSample(0.0, 1.61, 1.36, 1.11, 7), CreateSample(0.5714285714285714, 1.61, 1.36, 1.11, 7), CreateSample(2.0, 1.61, 1.36, 1.11, 7), CreateSample(3.4285714285714284, 1.61, 1.36, 1.11, 7), CreateSample(4.7142857142857144, 1.61, 1.36, 1.11, 7) }; chartCollection.Add(xChart); var rChart = Mock.Create<RChart>(Constructor.Mocked, Behavior.Loose); Mock.Arrange(() => rChart.IsChild).Returns(true); rChart.DataSource = new MobileObservableCollection<SampleUnit> { CreateSample(0.0, 1.15, 0.6, 0.05, 7), CreateSample(0.0, 1.15, 0.6, 0.05, 7), CreateSample(1.0, 1.15, 0.6, 0.05, 7), CreateSample(0.0, 1.15, 0.6, 0.05, 7), CreateSample(0.0, 1.15, 0.6, 0.05, 7), CreateSample(0.0, 1.15, 0.6, 0.05, 7), CreateSample(1.0, 1.15, 0.6, 0.05, 7), CreateSample(2.0, 1.15, 0.6, 0.05, 7), CreateSample(1.0, 1.15, 0.6, 0.05, 7), CreateSample(1.0, 1.15, 0.6, 0.05, 7) }; chartCollection.Add(rChart); }
static void Main(string[] args) { // Instantiating a Workbook object Workbook workbook = new Workbook(); // Obtaining the reference of the first worksheet WorksheetCollection worksheets = workbook.Worksheets; Worksheet sheet = worksheets[0]; // Adding some sample value to cells Cells cells = sheet.Cells; Cell cell = cells["A1"]; cell.Value = 50; cell = cells["A2"]; cell.Value = 100; cell = cells["A3"]; cell.Value = 150; cell = cells["B1"]; cell.Value = 4; cell = cells["B2"]; cell.Value = 20; cell = cells["B3"]; cell.Value = 50; ChartCollection charts = sheet.Charts; // Adding a chart to the worksheet int chartIndex = charts.Add(ChartType.Pyramid, 5, 0, 15, 5); Chart chart = charts[chartIndex]; // Adding NSeries (chart data source) to the chart ranging from "A1" cell to "B3" SeriesCollection serieses = chart.NSeries; serieses.Add("A1:B3", true); // Saving the Excel file workbook.Save("Chart_Aspose.xls"); }
private void UpdateBasedOnStatisticSeries(Dictionary <TournamentChartSeries, List <ChartSeriesItem> > chartSeriesItems, IList <Tournaments> tournaments) { if (tournaments == null || tournaments.Count == 0) { return; } var chartItemDataBuilder = CreateChartItemDataBuilder(ChartDisplayRange); var tournamentChartItemDataBuilder = CreateTournamentChartItemDataBuilder(ChartDisplayRange); var firstDate = tournamentChartItemDataBuilder.GetFirstDate(tournaments.Max(x => x.Firsthandtimestamp)); var groupedTournaments = tournaments .Where(x => x.Firsthandtimestamp >= firstDate && (tournamentChartFilterType == TournamentChartFilterType.All || tournamentChartFilterType == TournamentChartFilterType.MTT && x.Tourneytagscsv == TournamentsTags.MTT.ToString() || tournamentChartFilterType == TournamentChartFilterType.STT && x.Tourneytagscsv == TournamentsTags.STT.ToString())) .GroupBy(x => x.BuildKey()).ToDictionary(x => x.Key, x => x.FirstOrDefault()); var filteredTournamentPlayerStatistic = StorageModel .GetFilteredTournamentPlayerStatistic() .Where(x => groupedTournaments.ContainsKey(new TournamentKey(x.PokersiteId, x.TournamentId))) .ToArray(); // filter and orders var stats = chartItemDataBuilder.PrepareStatistic(filteredTournamentPlayerStatistic); object previousGroupKey = null; var itemsCounter = 0; for (var statIndex = 0; statIndex < stats.Length; statIndex++) { var stat = stats[statIndex]; var currentGroupKey = chartItemDataBuilder.BuildGroupKey(stat, statIndex); var isNew = !currentGroupKey.Equals(previousGroupKey); if (isNew) { itemsCounter++; } previousGroupKey = currentGroupKey; foreach (var chartSerie in ChartCollection.Where(x => x.IsBasedOnStatistic)) { ChartSeriesItem previousChartSeriesItem = null; ChartSeriesItem chartSeriesItem = null; if (!chartSeriesItems.ContainsKey(chartSerie)) { chartSeriesItems.Add(chartSerie, new List <ChartSeriesItem>()); } if (isNew) { chartSeriesItem = new ChartSeriesItem { Format = chartSerie.Format, Category = chartItemDataBuilder.GetValueFromGroupKey(currentGroupKey), PointColor = chartSerie.ColorsPalette.PointColor, TrackBallColor = chartSerie.ColorsPalette.TrackBallColor, TooltipColor = chartSerie.ColorsPalette.TooltipColor, TooltipForegroundColor = chartSerie.ColorsPalette.TooltipForeground }; previousChartSeriesItem = chartSeriesItems[chartSerie].LastOrDefault(); chartSeriesItems[chartSerie].Add(chartSeriesItem); } else { previousChartSeriesItem = chartSeriesItem = chartSeriesItems[chartSerie].LastOrDefault(); } chartSerie.UpdateChartSeriesItemByStatistic?.Invoke(chartSeriesItem, previousChartSeriesItem, stat); } } }
public override TransitPicture GetPictureWithBitmap(int id) { ChartEngine engine = new ChartEngine(); engine.Size = new Size(570, 300); engine.GridLines = WebChart.GridLines.None; engine.ShowXValues = true; engine.ShowYValues = true; engine.LeftChartPadding = 50; engine.BottomChartPadding = 50; engine.XAxisFont.StringFormat.LineAlignment = StringAlignment.Center; engine.XAxisFont.StringFormat.FormatFlags = StringFormatFlags.DirectionVertical; engine.XAxisFont.ForeColor = engine.YAxisFont.ForeColor = Color.Black; ChartCollection charts = new ChartCollection(engine); engine.Charts = charts; List <List <TransitSummarizedCounter> > counters = new List <List <TransitSummarizedCounter> >(); string format; string title = RequestType.ToString(); switch (RequestType) { case ChartType.DailyNew: counters.Add(Summary.NewDaily); format = "MMM d"; title = "New Daily"; break; case ChartType.DailyReturning: counters.Add(Summary.ReturningDaily); format = "MMM d"; title = "Returning Daily"; break; case ChartType.Daily: counters.Add(Summary.Daily); format = "MMM d"; break; case ChartType.Hourly: counters.Add(Summary.Hourly); format = "htt"; break; case ChartType.MonthlyUnique: counters.Add(Summary.UniqueMonthly); format = "MMM"; title = "Monthly Unique"; break; case ChartType.Monthly: counters.Add(Summary.Monthly); format = "MMM"; break; case ChartType.Weekly: counters.Add(Summary.Weekly); format = "MMM dd"; break; case ChartType.Yearly: counters.Add(Summary.Yearly); format = "yyyy"; break; case ChartType.AccountDaily: counters.Add(Summary.AccountDaily); format = "MMM d"; title = "New Daily"; break; case ChartType.AccountMonthly: counters.Add(Summary.AccountMonthly); format = "MMM"; title = "New Monthly"; break; case ChartType.AccountWeekly: counters.Add(Summary.AccountWeekly); format = "MMM dd"; title = "New Weekly"; break; case ChartType.AccountYearly: counters.Add(Summary.AccountYearly); format = "yyyy"; title = "New Yearly"; break; default: throw new ArgumentOutOfRangeException("type"); } long total = 0; long count = 0; Color fill = Color.FromArgb(0x9F, 0x6, 0x15); foreach (List <TransitSummarizedCounter> clist in counters) { ColumnChart chart = new ColumnChart(); chart.ShowLineMarkers = false; chart.ShowLegend = true; chart.Line.Color = Color.White; chart.Line.Width = 2; chart.Fill.Color = engine.Border.Color = fill; chart.Fill.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; chart.MaxColumnWidth = 100; count += clist.Count; foreach (TransitSummarizedCounter counter in clist) { total += counter.Total; chart.Data.Add(new ChartPoint(counter.Timestamp.ToString(format), counter.Total)); } charts.Add(chart); fill = Color.FromArgb(fill.R + 0x30, fill.G + 0x30, fill.B + 0x30); } engine.Title = new ChartText(); double average = count > 0 ? total / count : 0; engine.Title.Text = string.Format("{0} (average: {1})", RequestType, average); TransitPicture picture = new TransitPicture(); picture.Id = 0; picture.Modified = picture.Created = DateTime.UtcNow; picture.Name = RequestType.ToString(); MemoryStream ds = new MemoryStream(); engine.GetBitmap().Save(ds, System.Drawing.Imaging.ImageFormat.Png); picture.Bitmap = new byte[ds.Length]; MemoryStream ms = new MemoryStream(picture.Bitmap); ds.WriteTo(ms); return(picture); }
protected void Page_Load(object sender, EventArgs e) { string[] s = new string[2] { "No data", "1" }; if (Request.QueryString["data"] != null) { s = Request.QueryString["data"].Split('|'); } ChartEngine wcEng = new ChartEngine(); if (Request.QueryString["size"] != null) { string[] size = Request.QueryString["size"].Split('|'); wcEng.Size = new Size(Convert.ToInt32(size[0]), Convert.ToInt32(size[1])); } else { wcEng.Size = new Size(400, 400); } wcEng.GridLines = GridLines.None; wcEng.Padding = 0; wcEng.TopPadding = 0; ChartCollection wcCharts = new ChartCollection(wcEng); wcEng.Charts = wcCharts; PieChart slChart = new MyPieChart(); slChart.Line.Color = Color.Black; slChart.DataLabels.Visible = true; slChart.DataLabels.ShowXTitle = true; slChart.DataLabels.ShowValue = false; slChart.DataLabels.ShowLegend = false; slChart.Shadow.Visible = true; slChart.Explosion = 8; for (int i = 0; i < s.Length; i++) { ChartPoint cp = new ChartPoint(); cp.XValue = s[i]; cp.YValue = Convert.ToInt32(s[i + 1]); slChart.Data.Add(cp); i += 1; } slChart.Colors = color; wcCharts.Add(slChart); wcEng.HasChartLegend = false; wcEng.Legend.Position = LegendPosition.Right; wcEng.Legend.Width = 80; MemoryStream memStream = new MemoryStream(); Bitmap bmp = wcEng.GetBitmap(); Graphics g = Graphics.FromImage(bmp); Pen mypen = new Pen(Color.Black, 1F); g.DrawRectangle(mypen, 0, 0, bmp.Width - 1, bmp.Height - 1); bmp.Save(memStream, ImageFormat.Png); memStream.WriteTo(Response.OutputStream); Response.ContentType = "image/png"; Response.End(); }
private void UpdateOppoUI(string id) { try { ISDataService service; service = SDataDataService.mydataService(); SDataResourceCollectionRequest oppoContactsCollection = new SDataResourceCollectionRequest(service); oppoContactsCollection.ResourceKind = "opportunitycontacts"; oppoContactsCollection.QueryValues.Add("where", "Contact.Id eq '" + id + "'"); AtomFeed oppoContactsFeed = oppoContactsCollection.Read(); picBoxOpportunity.Visible = false; if (oppoContactsFeed.Entries.Count() > 0) { DataTable table = new DataTable(); table.Columns.Add("Id"); table.Columns.Add("Description"); table.Columns.Add("Probability"); table.Columns.Add("Potential"); table.Columns.Add("ActualAmount"); table.Columns.Add("Status"); //-------------------------------------- // Create The Chart ChartEngine engine = new ChartEngine(); engine.Size = picBoxOpportunity.Size; ChartCollection charts = new ChartCollection(engine); engine.Charts = charts; int pointCount = 0; ChartPointCollection data = new ChartPointCollection(); Chart columnChart = new ColumnChart(data, Color.DarkGreen); columnChart.Fill.Color = Color.FromArgb(50, Color.Green); columnChart.ShowLineMarkers = true; columnChart.DataLabels.Visible = true; foreach (AtomEntry entry in oppoContactsFeed.Entries) { SDataPayload oppoContact = entry.GetSDataPayload(); SDataPayload tempOppo = (SDataPayload)oppoContact.Values["Opportunity"]; SDataSingleResourceRequest oppo = new SDataSingleResourceRequest(service); oppo.ResourceKind = "Opportunities"; oppo.ResourceSelector = "('" + tempOppo.Key + "')"; AtomEntry oppoEnty = oppo.Read(); SDataPayload opportunitiy = (SDataPayload)oppoEnty.GetSDataPayload(); DataRow dr = table.NewRow(); dr[0] = opportunitiy.Key.ToString(); dr[1] = (opportunitiy.Values["Description"] != null ? opportunitiy.Values["Description"].ToString() : "No Description"); dr[2] = (opportunitiy.Values["CloseProbability"] != null ? opportunitiy.Values["CloseProbability"].ToString() + "%" : "0%"); dr[3] = (opportunitiy.Values["SalesPotential"] != null ? String.Format("{0:C}", Convert.ToDecimal(opportunitiy.Values["SalesPotential"])) : ""); dr[4] = (opportunitiy.Values["ActualAmount"] != null ? String.Format("{0:C}", Convert.ToDecimal(opportunitiy.Values["ActualAmount"])) : ""); dr[5] = (opportunitiy.Values["Status"] != null ? opportunitiy.Values["Status"].ToString() : "No Status"); pointCount = Convert.ToInt32(opportunitiy.Values["SalesPotential"].ToString().Substring(0,opportunitiy.Values["SalesPotential"].ToString().IndexOf('.'))); data.Add(new ChartPoint("Some Data", pointCount)); table.Rows.Add(dr); } dgvOpportunities.DataSource = table; dgvOpportunities.Columns["Id"].Visible = false; dgvOpportunities.Refresh(); charts.Add(columnChart); engine.GridLines = GridLines.Horizontal; Image image = engine.GetBitmap(); //-------------------------------------- // At this point we have the chart already //-------------------------------------- // show the already generated image picBoxOpportunity.Image = image; if (SLX_Outlook_AddIn.Properties.Settings.Default.OppoChartPanelMinimized == true) { picBoxOpportunity.Visible = false; } else { picBoxOpportunity.Visible = true; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void Window_Loaded(object sender, RoutedEventArgs e) { this._stus = new ChartCollection <Stu>(); this._stus.CollectionChanged += _stus_CollectionChanged; this._stus.ChartCollectionChanged += _stus_ChartCollectionChanged; }
public static void Run() { // Instantiate a new Workbook Workbook book = new Workbook(); //Rename the first worksheet book.Worksheets[0].Name = "DataSheet"; // Add a Data Worksheet Worksheet dataSheet = book.Worksheets["DataSheet"]; // Add Chart Worksheet Worksheet sheet = book.Worksheets.Add("MyChart"); // Put some values into the cells in the data worksheet dataSheet.Cells["B1"].PutValue(1); dataSheet.Cells["B2"].PutValue(2); dataSheet.Cells["B3"].PutValue(3); dataSheet.Cells["A1"].PutValue("A"); dataSheet.Cells["A2"].PutValue("B"); dataSheet.Cells["A3"].PutValue("C"); // Define the Chart Collection ChartCollection charts = sheet.Charts; // Add a Column chart to the Chart Worksheet int chartSheetIdx = charts.Add(ChartType.Column, 5, 0, 25, 15); // Get the newly added Chart Aspose.Cells.Charts.Chart chart = book.Worksheets["MyChart"].Charts[0]; // Set the background/foreground color for PlotArea/ChartArea chart.PlotArea.Area.BackgroundColor = Color.White; chart.ChartArea.Area.BackgroundColor = Color.White; chart.PlotArea.Area.ForegroundColor = Color.White; chart.ChartArea.Area.ForegroundColor = Color.White; // Hide the Legend chart.ShowLegend = false; // Add Data Series for the Chart chart.NSeries.Add("DataSheet!B1:B3", true); // Specify the Category Data chart.NSeries.CategoryData = "DataSheet!A1:A3"; // Get the Data Series Aspose.Cells.Charts.Series ser = chart.NSeries[0]; // Apply the 3-D formatting ShapePropertyCollection spPr = ser.ShapeProperties; Format3D fmt3d = spPr.Format3D; // Specify Bevel with its height/width Bevel bevel = fmt3d.TopBevel; bevel.Type = BevelPresetType.Circle; bevel.Height = 2; bevel.Width = 5; // Specify Surface material type fmt3d.SurfaceMaterialType = PresetMaterialType.WarmMatte; // Specify surface lighting type fmt3d.SurfaceLightingType = LightRigType.ThreePoint; // Specify lighting angle fmt3d.LightingAngle = 20; // Specify Series background/foreground and line color ser.Area.BackgroundColor = Color.Maroon; ser.Area.ForegroundColor = Color.Maroon; ser.Border.Color = Color.Maroon; // Save the Excel file book.Save(outputDir + "outputApplying3DFormat.xlsx"); Console.WriteLine("Applying3DFormat executed successfully."); }
public override TransitPicture GetPictureWithBitmap(int id) { ChartEngine engine = new ChartEngine(); engine.Size = new Size(570, 300); engine.GridLines = WebChart.GridLines.None; engine.ShowXValues = true; engine.ShowYValues = true; engine.LeftChartPadding = 50; engine.BottomChartPadding = 50; engine.XAxisFont.StringFormat.LineAlignment = StringAlignment.Center; engine.XAxisFont.StringFormat.FormatFlags = StringFormatFlags.DirectionVertical; engine.XAxisFont.ForeColor = engine.YAxisFont.ForeColor = Color.Black; ChartCollection charts = new ChartCollection(engine); engine.Charts = charts; List<List<TransitSummarizedCounter>> counters = new List<List<TransitSummarizedCounter>>(); string format; string title = RequestType.ToString(); switch (RequestType) { case ChartType.DailyNew: counters.Add(Summary.NewDaily); format = "MMM d"; title = "New Daily"; break; case ChartType.DailyReturning: counters.Add(Summary.ReturningDaily); format = "MMM d"; title = "Returning Daily"; break; case ChartType.Daily: counters.Add(Summary.Daily); format = "MMM d"; break; case ChartType.Hourly: counters.Add(Summary.Hourly); format = "htt"; break; case ChartType.MonthlyUnique: counters.Add(Summary.UniqueMonthly); format = "MMM"; title = "Monthly Unique"; break; case ChartType.Monthly: counters.Add(Summary.Monthly); format = "MMM"; break; case ChartType.Weekly: counters.Add(Summary.Weekly); format = "MMM dd"; break; case ChartType.Yearly: counters.Add(Summary.Yearly); format = "yyyy"; break; case ChartType.AccountDaily: counters.Add(Summary.AccountDaily); format = "MMM d"; title = "New Daily"; break; case ChartType.AccountMonthly: counters.Add(Summary.AccountMonthly); format = "MMM"; title = "New Monthly"; break; case ChartType.AccountWeekly: counters.Add(Summary.AccountWeekly); format = "MMM dd"; title = "New Weekly"; break; case ChartType.AccountYearly: counters.Add(Summary.AccountYearly); format = "yyyy"; title = "New Yearly"; break; default: throw new ArgumentOutOfRangeException("type"); } long total = 0; long count = 0; Color fill = Color.FromArgb(0x9F, 0x6, 0x15); foreach (List<TransitSummarizedCounter> clist in counters) { ColumnChart chart = new ColumnChart(); chart.ShowLineMarkers = false; chart.ShowLegend = true; chart.Line.Color = Color.White; chart.Line.Width = 2; chart.Fill.Color = engine.Border.Color = fill; chart.Fill.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; chart.MaxColumnWidth = 100; count += clist.Count; foreach (TransitSummarizedCounter counter in clist) { total += counter.Total; chart.Data.Add(new ChartPoint(counter.Timestamp.ToString(format), counter.Total)); } charts.Add(chart); fill = Color.FromArgb(fill.R + 0x30, fill.G + 0x30, fill.B + 0x30); } engine.Title = new ChartText(); double average = count > 0 ? total / count : 0; engine.Title.Text = string.Format("{0} (average: {1})", RequestType, average); TransitPicture picture = new TransitPicture(); picture.Id = 0; picture.Modified = picture.Created = DateTime.UtcNow; picture.Name = RequestType.ToString(); MemoryStream ds = new MemoryStream(); engine.GetBitmap().Save(ds, System.Drawing.Imaging.ImageFormat.Png); picture.Bitmap = new byte[ds.Length]; MemoryStream ms = new MemoryStream(picture.Bitmap); ds.WriteTo(ms); return picture; }
public override PicturePage.Picture GetPictureWithBitmap(int id) { ChartEngine engine = new ChartEngine(); engine.Size = new Size(570, 300); engine.GridLines = WebChart.GridLines.None; engine.ShowXValues = true; engine.ShowYValues = true; engine.LeftChartPadding = 50; engine.BottomChartPadding = 50; engine.XAxisFont.StringFormat.LineAlignment = StringAlignment.Center; engine.XAxisFont.StringFormat.FormatFlags = StringFormatFlags.DirectionVertical; engine.XAxisFont.ForeColor = engine.YAxisFont.ForeColor = Color.Black; ChartCollection charts = new ChartCollection(engine); engine.Charts = charts; List <TransitCounter> counters = SessionManager.GetCachedCollection <TransitCounter>( "GetStatsSummary", SessionManager.Ticket, new TransitStatsQueryOptions(RequestType)); string format; switch (RequestType) { case TransitStats.Type.Daily: format = "MMM d"; break; case TransitStats.Type.Hourly: format = "htt"; break; case TransitStats.Type.Monthly: format = "MMM"; break; case TransitStats.Type.Weekly: format = "MMM dd"; break; case TransitStats.Type.Yearly: format = "yyyy"; break; default: throw new ArgumentOutOfRangeException("type"); } Color fill = Color.Black; ColumnChart chart = new ColumnChart(); chart.ShowLineMarkers = false; chart.ShowLegend = true; chart.Line.Color = Color.White; chart.Line.Width = 2; chart.Fill.Color = engine.Border.Color = fill; chart.Fill.LinearGradientMode = LinearGradientMode.Vertical; chart.MaxColumnWidth = 100; foreach (TransitCounter counter in counters) { chart.Data.Add(new ChartPoint(counter.Created.ToString(format), counter.Count)); } charts.Add(chart); PicturePage.Picture picture = new PicturePage.Picture(); picture.Id = 0; picture.Modified = DateTime.UtcNow; picture.Name = RequestType.ToString(); MemoryStream ds = new MemoryStream(); engine.GetBitmap().Save(ds, ImageFormat.Png); picture.Bitmap = new byte[ds.Length]; MemoryStream ms = new MemoryStream(picture.Bitmap); ds.WriteTo(ms); return(picture); }
public void CalculateFailedPercent_NPChartTest() { var editableRootMock = Mock.Create<IEditableRoot>(); var privateAccessor = PrivateAccessor.ForType(typeof(SpcExpressionHelperModule)); var parameters = new object[] { "FailedPercent_f", "SPC_f", null, 3, 33, "NPChart" }; var arrange = Mock.NonPublic.Arrange<ChartPanel>(typeof(SpcExpressionHelperModule), "GetChartDescriptor", ArgExpr.IsAny<IEditableRoot>(), ArgExpr.IsAny<string>(), ArgExpr.IsAny<string>(), ArgExpr.IsAny<ChartTypesEnum>(), ArgExpr.IsAny<int>(), ArgExpr.IsAny<int>()); //prepare chart descriptor var dataSourceMock = new MobileObservableCollection<SampleUnit> { CreateSample(0.0, 1.74, 0.33, 0.0, 1), CreateSample(0.0, 1.74, 0.33, 0.0, 1), CreateSample(1.0, 1.74, 0.33, 0.0, 1) }; var chartMock = Mock.Create<NPChart>(Constructor.Mocked, Behavior.Loose); Mock.Arrange(() => chartMock.DataSource).Returns(dataSourceMock); Mock.Arrange(() => chartMock.IsChild).Returns(true); var charts = new ChartCollection { chartMock }; var chartDescriptor = Mock.Create<ChartPanel>(Constructor.Mocked, Behavior.Loose); chartDescriptor.ChartType = ChartTypesEnum.NPChart; chartDescriptor.Charts = charts; //test true arrange.Returns(chartDescriptor); Assert.IsTrue((bool)privateAccessor.CallMethod("CalculateFailedPercentExpression", editableRootMock, parameters)); //test false parameters[4] = 34; Assert.IsFalse((bool)privateAccessor.CallMethod("CalculateFailedPercentExpression", editableRootMock, parameters)); }
public void LoadGraph() { ChartEngine tempChartEngine = new ChartEngine(); tempChartEngine.Size = GraphPictureBox.Size; tempChartEngine.ShowXValues = true; tempChartEngine.ShowYValues = true; // tempChartEngine.Padding = 40; tempChartEngine.BottomChartPadding = 30; tempChartEngine.LeftChartPadding = 40; ChartText tempChartText = new ChartText(); tempChartText.Text = "Hourly Sales"; tempChartEngine.Title = tempChartText; CPaymentManager tempPaymentManager = new CPaymentManager(); CResult oResult = tempPaymentManager.GetSortedPayment(DateTime.Now); double MaxAmount = 0.0; if (oResult.IsSuccess && oResult.Data != null) { MaxAmount = (double)oResult.Data; } // tempChartEngine.YValuesInterval = (int)Math.Floor(MaxAmount / 20); tempChartEngine.YValuesInterval = GetInterVal(MaxAmount); tempChartEngine.YCustomEnd = GetCustomEnd(GetInterVal(MaxAmount), MaxAmount); ChartCollection tempChartCollection = new ChartCollection(tempChartEngine); tempChartEngine.Charts = tempChartCollection; DateTime inCurrentDate = DateTime.Now; GetTimeSpan(inCurrentDate); //Data Access try { CPcInfoManager tempPcInfoManager = new CPcInfoManager(); IPHostEntry ipEntry = System.Net.Dns.GetHostByName(Dns.GetHostName()); CPcInfo tempPcInfo = (CPcInfo)tempPcInfoManager.PcInfoByPcIP(ipEntry.AddressList[0].ToString()).Data; DataSet tempHourlySaleDataSet = new DataSet(); CCommonConstants oConstants = ConfigManager.GetConfig<CCommonConstants>(); String sSql = String.Format("select 'NewTime' as \"NewTime\",bill_print_time.payment_time as \"Time\",payment.total_amount as \"Amount\" from payment,bill_print_time where payment.order_id=bill_print_time.order_id and bill_print_time.payment_time>={0} and bill_print_time.payment_time<{1} and payment.pc_id={2}", m_oStartTime, m_oEndTime, tempPcInfo.PcID); SqlDataAdapter tempSqlDataAdapter = new SqlDataAdapter(sSql, oConstants.DBConnection); tempSqlDataAdapter.Fill(tempHourlySaleDataSet); sSql = String.Format("select 'NewTime' as \"NewTime\",deposit_time as \"Time\",total_amount as \"Amount\" from deposit where deposit_time >= {0} and deposit_time < {1} and deposit.pc_id={2}", m_oStartTime, m_oEndTime, tempPcInfo.PcID); tempSqlDataAdapter = new SqlDataAdapter(sSql, oConstants.DBConnection); tempSqlDataAdapter.Fill(tempHourlySaleDataSet); ConvertTime(ref tempHourlySaleDataSet); //start dummy time DataRow row1 = tempHourlySaleDataSet.Tables[0].NewRow(); row1["NewTime"] = "0:00"; row1["Amount"] = "0.000"; //end dummy time DataRow row2 = tempHourlySaleDataSet.Tables[0].NewRow(); row2["NewTime"] = "23:59"; row2["Amount"] = "0.000"; tempHourlySaleDataSet.Tables[0].Rows.Add(row1); tempHourlySaleDataSet.Tables[0].Rows.Add(row2); Chart tempLineChart = new LineChart(); tempLineChart.Line.Color = Color.Red; tempLineChart.ShowLineMarkers = false; tempLineChart.Line.Width = (float)2.0; DataTableReader oReader = tempHourlySaleDataSet.Tables[0].CreateDataReader(); tempLineChart.DataSource = oReader; tempLineChart.DataXValueField = "NewTime"; tempLineChart.DataYValueField = "Amount"; tempLineChart.DataBind(); tempChartCollection.Add(tempLineChart); Image image = tempChartEngine.GetBitmap(); GraphPictureBox.Image = image; GraphPictureBox.Update(); } catch (Exception exp) { throw exp; } }
protected void Page_Load(object sender, EventArgs e) { string[] s = new string[2] { "No data", "0" }; if (Request.QueryString["data"] != null) { s = Request.QueryString["data"].Split('|'); } ChartEngine wcEng = new ChartEngine(); if (Request.QueryString["size"] != null) { string[] size = Request.QueryString["size"].Split('|'); wcEng.Size = new Size(Convert.ToInt32(size[0]), Convert.ToInt32(size[1])); } else { wcEng.Size = new Size(400, 400); } ChartCollection wcCharts = new ChartCollection(wcEng); wcEng.Charts = wcCharts; wcEng.RenderHorizontally = false; wcEng.Border.Color = Color.FromArgb(99, Color.SteelBlue); wcEng.ShowXValues = true; wcEng.ShowYValues = true; wcEng.ChartPadding = 30; wcEng.Padding = 0; wcEng.TopPadding = 0; ColumnChart chart = new ColumnChart(); chart.Shadow.Visible = false; chart.MaxColumnWidth = Convert.ToInt32(wcEng.Size.Height / s.Length); chart.Fill.Color = Color.FromArgb(90, Color.SteelBlue); chart.Line.Color = Color.SteelBlue; chart.Line.Width = 2; chart.DataLabels.Visible = true; chart.DataLabels.ShowValue = true; for (int i = 0; i < s.Length; i++) { ChartPoint cp = new ChartPoint(); cp.XValue = s[i]; cp.YValue = Convert.ToInt32(s[i + 1]); chart.Data.Add(cp); i += 1; } wcCharts.Add(chart); MemoryStream memStream = new MemoryStream(); Bitmap bmp = wcEng.GetBitmap(); Graphics g = Graphics.FromImage(bmp); Pen mypen = new Pen(Color.Black, 1F); g.DrawRectangle(mypen, 0, 0, bmp.Width - 1, bmp.Height - 1); bmp.Save(memStream, ImageFormat.Png); memStream.WriteTo(Response.OutputStream); Response.ContentType = "image/png"; Response.End(); }
public async void GetChartDescriptorAsyncMethodTest() { Mock.SetupStatic(typeof(SpcExpressionHelperModule)); Mock.NonPublic.Arrange<Task<ChartPanel>>( typeof(SpcExpressionHelperModule), "GetChartDescriptorAsync", ArgExpr.IsAny<IEditableRoot>(), ArgExpr.IsAny<string>(), ArgExpr.IsAny<string>(), ArgExpr.IsAny<ChartTypesEnum>(), ArgExpr.IsAny<int>(), ArgExpr.IsAny<int>()).CallOriginal(); var privateAccessor = PrivateAccessor.ForType(typeof(SpcExpressionHelperModule)); //mock dictionary representing ChartDescriptorExp property from Edit class var instanceMock = Mock.Create<TestInstanceClass>(x => { x.Implements<IEditableRoot>(); x.SetBehavior(Behavior.Loose); }); //mock SpcManager.CreateChartDescriptor method Mock.SetupStatic(typeof(SpcManager)); var chartDescriptorMock = DataPortal.Create<ChartPanel>(); //Mock.Arrange(() => chartDescriptorMock.ChartType).Returns(ChartTypesEnum.XBarChart); chartDescriptorMock.ChartType = ChartTypesEnum.XBarChart; Mock.Arrange(() => SpcManager.CreateChartDescriptorAsync(Arg.IsAny<ChartTypesEnum>())).Returns(TaskHelper.FromResult(chartDescriptorMock)); //Add new chart descriptor for ExprField field (not for rules) var task = privateAccessor.CallMethod("GetChartDescriptorAsync", instanceMock, "ExprField", "SPC_f", ChartTypesEnum.XBarChart, 5, 10) as Task<ChartPanel>; Assert.IsNotNull(task); var result = await task; Assert.IsNotNull(result); Assert.AreEqual(result.ChartType, ChartTypesEnum.XBarChart); Assert.AreEqual(result.DataPoints, 10); Assert.AreEqual(result.SubgroupSize, 5); Assert.IsNotNull(instanceMock.ChartDescriptorExp); Assert.AreEqual(instanceMock.ChartDescriptorExp.Count, 1); Assert.AreEqual(instanceMock.ChartDescriptorExp["ExprFieldSPC_f"], chartDescriptorMock); //Get previously cached chart descriptor and update its data var dataSourceMock = new MobileObservableCollection<SampleUnit> { CreateSample(0.0, 1.74, 0.33, 0.0, 1), CreateSample(0.0, 1.74, 0.33, 0.0, 1), CreateSample(1.0, 1.74, 0.33, 0.0, 1) }; var chartMock = Mock.Create<XBarChart>(Constructor.Mocked, Behavior.Loose); Mock.Arrange(() => chartMock.DataSource).Returns(dataSourceMock); Mock.Arrange(() => chartMock.IsChild).Returns(true); var charts = new ChartCollection { chartMock }; Mock.Arrange(() => chartDescriptorMock.Charts).Returns(charts); Assert.IsNotNull(chartDescriptorMock.Charts); Assert.AreEqual(chartDescriptorMock.Charts.Count, 1); Assert.IsNotNull(chartDescriptorMock.Charts[0].DataSource); Assert.AreEqual(chartDescriptorMock.Charts[0].DataSource.Count, 3); Assert.AreEqual(chartDescriptorMock.Charts[0].DataSource[2].SampleValue, 1.0); Mock.Arrange(() => TestInstanceClass.GetSampleDataForSPCAsync((IEditableRoot)instanceMock, "SPC_f", ChartTypesEnum.XBarChart, chartDescriptorMock, true)) .DoInstead<IEditableRoot, string, ChartTypesEnum, ChartPanel, bool>((instance, spcFieldName, chartType, chartDescriptor, isForExpr) => { var dataSource = new MobileObservableCollection<SampleUnit> { CreateSample(1.22, 5.0, 2.54, 1.0, 6) }; var chart = Mock.Create<XBarChart>(Constructor.Mocked, Behavior.Loose); Mock.Arrange(() => chart.DataSource).Returns(dataSource); Mock.Arrange(() => chart.IsChild).Returns(true); var chartCollection = new ChartCollection { chart }; Mock.Arrange(() => chartDescriptor.Charts).Returns(chartCollection); }) .Returns(TaskHelper.FromResult(chartDescriptorMock)); task = privateAccessor.CallMethod("GetChartDescriptorAsync", instanceMock, "ExprField", "SPC_f", ChartTypesEnum.XBarChart, 5, 10) as Task<ChartPanel>; Assert.IsNotNull(task); result = await task; Assert.IsNotNull(result); Assert.AreEqual(result.ChartType, ChartTypesEnum.XBarChart); Assert.AreEqual(result.DataPoints, 10); Assert.AreEqual(result.SubgroupSize, 5); Assert.IsNotNull(instanceMock.ChartDescriptorExp); Assert.AreEqual(instanceMock.ChartDescriptorExp.Count, 1); Assert.AreEqual(instanceMock.ChartDescriptorExp["ExprFieldSPC_f"], chartDescriptorMock); Assert.IsNotNull(chartDescriptorMock.Charts); Assert.AreEqual(chartDescriptorMock.Charts.Count, 1); Assert.IsNotNull(chartDescriptorMock.Charts[0].DataSource); Assert.AreEqual(chartDescriptorMock.Charts[0].DataSource.Count, 1); Assert.AreEqual(chartDescriptorMock.Charts[0].DataSource[0].SampleValue, 1.22); }
private void RenderUsers() { //Session["chart_ids"] = ids; //Session["chart_names"] = names; try { string[] ids_arr; string[] names_arr; ids_arr = Session["chart_ids"].ToString().Split('^'); names_arr = Session["chart_names"].ToString().Split('^'); DataSet dsUsers = new DataSet("UsersDS"); dsUsers.Tables.Add("Users"); DataTable dt = dsUsers.Tables["Users"]; dt.Columns.Add("Id"); dt.Columns.Add("Name"); for(int i =0;i<ids_arr.GetUpperBound(0);i++) { if( ids_arr[i] != "") { DataRow dr; dr = dsUsers.Tables["Users"].NewRow(); dr["Id"] = ids_arr[i]; dr["Name"] = names_arr[i]; dsUsers.Tables["Users"].Rows.Add(dr); } } wcEng = new ChartEngine(); ChartCollection wcCharts = new ChartCollection(wcEng); wcEng.Charts = wcCharts; SetProperties(ref wcEng); DataSet dsXGames = new DataSet("XGames"); FillXGames(ref dsXGames); int n = 0; DataSet dsUserPos = new DataSet("UserPos"); foreach(DataRow dri in dsUsers.Tables["Users"].Rows) { FillUserPos(ref dsUserPos,Convert.ToInt32(dri["id"])); Chart lch = new WebChart.SmoothLineChart(); bool bNeedToShift = false; //foreach (DataRow drxg in dsXGames.Tables[0].Rows) //{ // if (dsUserPos.Tables[0].Rows.Contains(drxg[0])) // { // DataRow drup = dsUserPos.Tables[0].Rows.Find(drxg[0]); // lch.Data.Add(new ChartPoint(ShiftGameName(drxg[0].ToString(), bNeedToShift), Convert.ToSingle(drup[1]))); // } // else // { // DataRow drup = dsUserPos.Tables[0].Rows.Find(drxg[0]); // lch.Data.Add(new ChartPoint(ShiftGameName(drxg[0].ToString(), bNeedToShift), 30)); // } // lch.DataLabels.Visible = true; // lch.DataLabels.ForeColor = Color.LightGray; // //bNeedToShift = !bNeedToShift; //} int nRowCount = dsXGames.Tables[0].Rows.Count; //for(int z=nRowCount;z==1;z--) for (int z = nRowCount - 1; z >= 0; z = z - 1) //DataRow drxg in dsXGames.Tables[0].Rows) { DataRow drxg = dsXGames.Tables[0].Rows[z]; if (dsUserPos.Tables[0].Rows.Contains(drxg[0])) { DataRow drup = dsUserPos.Tables[0].Rows.Find(drxg[0]); lch.Data.Add(new ChartPoint(ShiftGameName(drxg[0].ToString(), bNeedToShift), Convert.ToSingle(drup[1]))); } else { //DataRow drup = dsUserPos.Tables[0].Rows.Find(drxg[0]); //lch.Data.Add(new ChartPoint(ShiftGameName(drxg[0].ToString(), bNeedToShift), -1)); } lch.DataLabels.Visible = true; lch.DataLabels.ForeColor = Color.LightGray; //bNeedToShift = !bNeedToShift; } lch.Line.Color = user_color[n%10]; n++; lch.DataLabels.Visible=true; Font dlFont = new Font("verdana",5); lch.DataLabels.Font = dlFont; lch.Legend = dri["name"].ToString(); lch.DataLabels.ForeColor = Color.Black; lch.LineMarker = new CircleLineMarker(3, lch.Line.Color, lch.Line.Color); wcEng.YCustomEnd = Convert.ToInt32(Session["chart_Ycount"]); wcEng.Charts.Add(lch); } Bitmap bmp; System.IO.MemoryStream memStream = new System.IO.MemoryStream(); bmp = wcEng.GetBitmap(); bmp.Save(memStream, System.Drawing.Imaging.ImageFormat.Png); memStream.WriteTo(Response.OutputStream); Response.End(); } catch (Exception exc) { Response.Write(exc.Message); } }
public static void Main(string[] args) { //ExStart:1 // The path to the documents directory. string dataDir = Aspose.Cells.Examples.Utils.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); // Create directory if it is not already present. bool IsExists = System.IO.Directory.Exists(dataDir); if (!IsExists) { System.IO.Directory.CreateDirectory(dataDir); } //Instantiate a new Workbook Workbook book = new Workbook(); //Add a Data Worksheet Worksheet dataSheet = book.Worksheets.Add("DataSheet"); //Add Chart Worksheet Worksheet sheet = book.Worksheets.Add("MyChart"); //Put some values into the cells in the data worksheet dataSheet.Cells["B1"].PutValue(1); dataSheet.Cells["B2"].PutValue(2); dataSheet.Cells["B3"].PutValue(3); dataSheet.Cells["A1"].PutValue("A"); dataSheet.Cells["A2"].PutValue("B"); dataSheet.Cells["A3"].PutValue("C"); //Define the Chart Collection ChartCollection charts = sheet.Charts; //Add a Column chart to the Chart Worksheet int chartSheetIdx = charts.Add(ChartType.Column, 5, 0, 25, 15); //Get the newly added Chart Aspose.Cells.Charts.Chart chart = book.Worksheets[2].Charts[0]; //Set the background/foreground color for PlotArea/ChartArea chart.PlotArea.Area.BackgroundColor = Color.White; chart.ChartArea.Area.BackgroundColor = Color.White; chart.PlotArea.Area.ForegroundColor = Color.White; chart.ChartArea.Area.ForegroundColor = Color.White; //Hide the Legend chart.ShowLegend = false; //Add Data Series for the Chart chart.NSeries.Add("DataSheet!B1:B3", true); //Specify the Category Data chart.NSeries.CategoryData = "DataSheet!A1:A3"; //Get the Data Series Aspose.Cells.Charts.Series ser = chart.NSeries[0]; //Apply the 3-D formatting ShapePropertyCollection spPr = ser.ShapeProperties; Format3D fmt3d = spPr.Format3D; //Specify Bevel with its height/width Bevel bevel = fmt3d.TopBevel; bevel.Type = BevelPresetType.Circle; bevel.Height = 2; bevel.Width = 5; //Specify Surface material type fmt3d.SurfaceMaterialType = PresetMaterialType.WarmMatte; //Specify surface lighting type fmt3d.SurfaceLightingType = LightRigType.ThreePoint; //Specify lighting angle fmt3d.LightingAngle = 20; //Specify Series background/foreground and line color ser.Area.BackgroundColor = Color.Maroon; ser.Area.ForegroundColor = Color.Maroon; ser.Border.Color = Color.Maroon; //Save the Excel file book.Save(dataDir + "3d_format.out.xlsx"); //ExEnd:1 }
private void Page_Load(object sender, System.EventArgs e) { _questionId = Information.IsNumeric(Request["QuestionId"]) ? int.Parse(Request["QuestionId"]) : -1; _filterId = Information.IsNumeric(Request["FilterId"]) ? int.Parse(Request["FilterId"]) : -1; _sortOrder = Request["SortOrder"] == null ? "ans" : Request["SortOrder"]; if (_questionId == -1) { Response.End(); } else if (!NSurveyUser.Identity.IsAdmin && !NSurveyUser.Identity.HasAllSurveyAccess) { if (!new Question().CheckQuestionUser(_questionId, NSurveyUser.Identity.UserId)) { Response.End(); } } ChartEngine engine = new ChartEngine(); ChartCollection charts = new ChartCollection(engine); engine.Size = new Size(700, 500); engine.Charts = charts; PieChart pie = new PieChart(); //pie.Colors = new Color[]{ Color.Red}; ChartLegend legend = new ChartLegend(); legend.Position = LegendPosition.Right; legend.Width = 200; legend.Background.Color = Color.FromArgb(245,249,251); pie.DataLabels.NumberFormat ="0.00"; pie.Explosion = 6; pie.Shadow.Visible = true; pie.Shadow.Color=Color.LightGray; pie.Shadow.OffsetY = 5; engine.HasChartLegend = true; engine.Legend = legend; engine.GridLines = GridLines.None; SetQuestionData(engine, pie); SetMoreProperties(engine); charts.Add(pie); // send chart to browser Bitmap bmp; System.IO.MemoryStream memStream = new System.IO.MemoryStream(); bmp = engine.GetBitmap(); bmp.Save(memStream, System.Drawing.Imaging.ImageFormat.Png); memStream.WriteTo(Response.OutputStream); Response.End(); }
protected void InitialiseChart() { Engine = new ChartEngine(); ChartCollection charts = new ChartCollection(Engine); Engine.Charts = charts; // Set some display properties Engine.GridLines = GridLines.Horizontal; Fill.Color = Color.Red; Engine.ShowXValues = true; Engine.LeftChartPadding = 100; Engine.ShowYValues = true; Engine.BottomChartPadding = 10; Engine.YValuesInterval = 10; Engine.Charts.Add(this); }
public void GetChartDescriptorMethodTest() { Mock.SetupStatic(typeof(SpcExpressionHelperModule)); Mock.NonPublic.Arrange<ChartPanel>(typeof(SpcExpressionHelperModule), "GetChartDescriptor", ArgExpr.IsAny<IEditableRoot>(), ArgExpr.IsAny<string>(), ArgExpr.IsAny<string>(), ArgExpr.IsAny<ChartTypesEnum>(), ArgExpr.IsAny<int>(), ArgExpr.IsAny<int>()).CallOriginal(); var privateAccessor = PrivateAccessor.ForType(typeof(SpcExpressionHelperModule)); //mock dictionary representing ChartDescriptorExp property from Edit class var instanceMock = Mock.Create<TestInstanceClass>(x => { x.Implements<IEditableRoot>(); x.SetBehavior(Behavior.CallOriginal); }); //mock SpcManager.CreateChartDescriptor method Mock.SetupStatic(typeof(SpcManager)); var chartDescriptorMock = Mock.Create<ChartPanel>(Constructor.Mocked, Behavior.Loose); Mock.Arrange(() => chartDescriptorMock.ChartType).Returns(ChartTypesEnum.XBarChart); Mock.Arrange(() => SpcManager.CreateChartDescriptor(Arg.IsAny<ChartTypesEnum>())).Returns(chartDescriptorMock); //mock MethodCaller Mock.SetupStatic(typeof(MethodCaller)); Mock.Arrange(() => MethodCaller.CallFactoryMethod(Arg.IsAny<Type>(), "GetSampleDataForSPC", "SPC_f", instanceMock, ChartTypesEnum.XBarChart, chartDescriptorMock, true)).Returns(chartDescriptorMock); Mock.Arrange(() => MethodCaller.CallMethod(instanceMock, "LoadProperty", Arg.IsAny<string>(), Arg.IsAny<object>())) .DoInstead<object, string, object[]>((instance, methodName, parameters) => ((TestInstanceClass)instance).LoadProperty((string)parameters[0], parameters[1])); //Add new chart descriptor for ExprField field (for rules) var result = privateAccessor.CallMethod("GetChartDescriptor", instanceMock, "Expr_RuleField", "SPC_f", ChartTypesEnum.XBarChart, 5, 10) as ChartPanel; Assert.IsNotNull(result); Assert.AreEqual(result.ChartType, ChartTypesEnum.XBarChart); Assert.AreEqual(result.DataPoints, 10); Assert.AreEqual(result.SubgroupSize, 5); Assert.IsNull(instanceMock.ChartDescriptorExp); //Add new chart descriptor for ExprField field (not for rules) instanceMock.ChartDescriptorExp = null; result = privateAccessor.CallMethod("GetChartDescriptor", instanceMock, "ExprField", "SPC_f", ChartTypesEnum.XBarChart, 5, 10) as ChartPanel; Assert.IsNotNull(result); Assert.AreEqual(result.ChartType, ChartTypesEnum.XBarChart); Assert.AreEqual(result.DataPoints, 10); Assert.AreEqual(result.SubgroupSize, 5); Assert.IsNotNull(instanceMock.ChartDescriptorExp); Assert.AreEqual(instanceMock.ChartDescriptorExp.Count, 1); Assert.AreEqual(instanceMock.ChartDescriptorExp["ExprFieldSPC_f"], chartDescriptorMock); //Get previously cached chart descriptor and update its data var dataSourceMock = new MobileObservableCollection<SampleUnit> { CreateSample(0.0, 1.74, 0.33, 0.0, 1), CreateSample(0.0, 1.74, 0.33, 0.0, 1), CreateSample(1.0, 1.74, 0.33, 0.0, 1) }; var chartMock = Mock.Create<XBarChart>(Constructor.Mocked, Behavior.Loose); Mock.Arrange(() => chartMock.DataSource).Returns(dataSourceMock); Mock.Arrange(() => chartMock.IsChild).Returns(true); var charts = new ChartCollection { chartMock }; Mock.Arrange(() => chartDescriptorMock.Charts).Returns(charts); Assert.IsNotNull(chartDescriptorMock.Charts); Assert.AreEqual(chartDescriptorMock.Charts.Count, 1); Assert.IsNotNull(chartDescriptorMock.Charts[0].DataSource); Assert.AreEqual(chartDescriptorMock.Charts[0].DataSource.Count, 3); Assert.AreEqual(chartDescriptorMock.Charts[0].DataSource[2].SampleValue, 1.0); Mock.Arrange(() => MethodCaller.CallFactoryMethod(Arg.IsAny<Type>(), "GetSampleDataForSPC", "SPC_f", instanceMock, ChartTypesEnum.XBarChart, chartDescriptorMock, true)) .DoInstead<Type, string, object[]>((type, mathodName, parameters) => { var descriptor = parameters[3] as ChartPanel; var dataSource = new MobileObservableCollection<SampleUnit> { CreateSample(1.22, 5.0, 2.54, 1.0, 6) }; var chart = Mock.Create<XBarChart>(Constructor.Mocked, Behavior.Loose); Mock.Arrange(() => chart.DataSource).Returns(dataSource); Mock.Arrange(() => chart.IsChild).Returns(true); var chartCollection = new ChartCollection { chart }; Mock.Arrange(() => descriptor.Charts).Returns(chartCollection); }) .Returns(chartDescriptorMock); result = privateAccessor.CallMethod("GetChartDescriptor", instanceMock, "ExprField", "SPC_f", ChartTypesEnum.XBarChart, 5, 10) as ChartPanel; Assert.IsNotNull(result); Assert.AreEqual(result.ChartType, ChartTypesEnum.XBarChart); Assert.AreEqual(result.DataPoints, 10); Assert.AreEqual(result.SubgroupSize, 5); Assert.IsNotNull(instanceMock.ChartDescriptorExp); Assert.AreEqual(instanceMock.ChartDescriptorExp.Count, 1); Assert.AreEqual(instanceMock.ChartDescriptorExp["ExprFieldSPC_f"], chartDescriptorMock); Assert.IsNotNull(chartDescriptorMock.Charts); Assert.AreEqual(chartDescriptorMock.Charts.Count, 1); Assert.IsNotNull(chartDescriptorMock.Charts[0].DataSource); Assert.AreEqual(chartDescriptorMock.Charts[0].DataSource.Count, 1); Assert.AreEqual(chartDescriptorMock.Charts[0].DataSource[0].SampleValue, 1.22); }
private void Page_Load(object sender, System.EventArgs e) { _questionId = Information.IsNumeric(Request["QuestionId"]) ? int.Parse(Request["QuestionId"]) : -1; _filterId = Information.IsNumeric(Request["FilterId"]) ? int.Parse(Request["FilterId"]) : -1; _sortOrder = Request["SortOrder"] == null ? "ans" : Request["SortOrder"]; if (_questionId == -1) { Response.End(); } else if (!NSurveyUser.Identity.IsAdmin && !NSurveyUser.Identity.HasAllSurveyAccess) { if (!new Question().CheckQuestionUser(_questionId, NSurveyUser.Identity.UserId)) { Response.End(); } } ChartEngine engine = new ChartEngine(); ChartCollection charts = new ChartCollection(engine); engine.Size = new Size(700, 500); engine.Charts = charts; PieChart pie = new PieChart(); //pie.Colors = new Color[]{ Color.Red}; ChartLegend legend = new ChartLegend(); legend.Position = LegendPosition.Right; legend.Width = 200; legend.Background.Color = Color.FromArgb(245, 249, 251); pie.DataLabels.NumberFormat = "0.00"; pie.Explosion = 6; pie.Shadow.Visible = true; pie.Shadow.Color = Color.LightGray; pie.Shadow.OffsetY = 5; engine.HasChartLegend = true; engine.Legend = legend; engine.GridLines = GridLines.None; SetQuestionData(engine, pie); SetMoreProperties(engine); charts.Add(pie); // send chart to browser Bitmap bmp; System.IO.MemoryStream memStream = new System.IO.MemoryStream(); bmp = engine.GetBitmap(); bmp.Save(memStream, System.Drawing.Imaging.ImageFormat.Png); memStream.WriteTo(Response.OutputStream); Response.End(); }
public async void CalculateFailedPercentAsync_PChartTest() { var editableRootMock = Mock.Create<IEditableRoot>(); var privateAccessor = PrivateAccessor.ForType(typeof(SpcExpressionHelperModule)); var parameters = new object[] { "FailedPercent_f", "SPC_f", null, 10, 39, "PChart" }; var arrange = Mock.NonPublic.Arrange<Task<ChartPanel>>(typeof(SpcExpressionHelperModule), "GetChartDescriptorAsync", ArgExpr.IsAny<IEditableRoot>(), ArgExpr.IsAny<string>(), ArgExpr.IsAny<string>(), ArgExpr.IsAny<ChartTypesEnum>(), ArgExpr.IsAny<int>(), ArgExpr.IsAny<int>()); //prepare chart descriptor var dataSourceMock = new MobileObservableCollection<SampleUnit> { CreateSample(0.4, 0.8648, 0.4, 0.0, 10) }; var chartMock = Mock.Create<PChart>(Constructor.Mocked, Behavior.Loose); Mock.Arrange(() => chartMock.DataSource).Returns(dataSourceMock); Mock.Arrange(() => chartMock.IsChild).Returns(true); var charts = new ChartCollection { chartMock }; var chartDescriptor = Mock.Create<ChartPanel>(Constructor.Mocked, Behavior.Loose); chartDescriptor.ChartType = ChartTypesEnum.PChart; chartDescriptor.Charts = charts; //test true arrange.Returns(TaskHelper.FromResult(chartDescriptor)); var task = privateAccessor.CallMethod("CalculateFailedPercentExpressionAsync", editableRootMock, parameters) as Task<bool?>; Assert.IsNotNull(task); Assert.IsTrue((bool) await task); //test false parameters[4] = 41; task = privateAccessor.CallMethod("CalculateFailedPercentExpressionAsync", editableRootMock, parameters) as Task<bool?>; Assert.IsNotNull(task); Assert.IsFalse((bool) await task); }
public override void Update() { var chartItemDataBuilder = CreateChartItemDataBuilder(ChartDisplayRange); // filter and orders var stats = chartItemDataBuilder.PrepareStatistic(StorageModel.GetFilteredCashPlayerStatistic()); object previousGroupKey = null; chartItemDataBuilder.Prepare(stats.Length); var chartSeriesItems = new Dictionary <ChartSeries, List <ChartSeriesItem> >(); var itemsCounter = 0; for (var statIndex = 0; statIndex < stats.Length; statIndex++) { var stat = stats[statIndex]; var currentGroupKey = chartItemDataBuilder.BuildGroupKey(stat, statIndex); var isNew = !currentGroupKey.Equals(previousGroupKey); if (isNew) { itemsCounter++; } previousGroupKey = currentGroupKey; foreach (var chartSerie in ChartCollection) { ChartSeriesItem previousChartSeriesItem = null; ChartSeriesItem chartSeriesItem = null; if (!chartSeriesItems.ContainsKey(chartSerie)) { chartSeriesItems.Add(chartSerie, new List <ChartSeriesItem>()); } if (isNew) { chartSeriesItem = new ChartSeriesItem { Format = chartSerie.Format, Category = chartItemDataBuilder.GetValueFromGroupKey(currentGroupKey) }; previousChartSeriesItem = chartSeriesItems[chartSerie].LastOrDefault(); chartSeriesItems[chartSerie].Add(chartSeriesItem); } else { previousChartSeriesItem = chartSeriesItem = chartSeriesItems[chartSerie].LastOrDefault(); } chartSerie.UpdateChartSeriesItem(chartSeriesItem, previousChartSeriesItem, stat, statIndex, stats.Length); } } if (ChartDisplayRange == ChartDisplayRange.Hands) { HandsCount = itemsCounter; } App.Current?.Dispatcher.Invoke(() => ChartCollection?.ForEach(x => x.ItemsCollection?.Clear())); if (chartSeriesItems.Count > 0) { chartSeriesItems.Keys.ForEach(charSerie => { charSerie.ItemsCollection = new ObservableCollection <ChartSeriesItem>(chartSeriesItems[charSerie]); }); } }
public override PicturePage.Picture GetPictureWithBitmap(int id) { ChartEngine engine = new ChartEngine(); engine.Size = new Size(570, 300); engine.GridLines = WebChart.GridLines.None; engine.ShowXValues = true; engine.ShowYValues = true; engine.LeftChartPadding = 50; engine.BottomChartPadding = 50; engine.XAxisFont.StringFormat.LineAlignment = StringAlignment.Center; engine.XAxisFont.StringFormat.FormatFlags = StringFormatFlags.DirectionVertical; engine.XAxisFont.ForeColor = engine.YAxisFont.ForeColor = Color.Black; ChartCollection charts = new ChartCollection(engine); engine.Charts = charts; List<TransitCounter> counters = SessionManager.GetCachedCollection<TransitCounter>( "GetStatsSummary", SessionManager.Ticket, new TransitStatsQueryOptions(RequestType)); string format; switch (RequestType) { case TransitStats.Type.Daily: format = "MMM d"; break; case TransitStats.Type.Hourly: format = "htt"; break; case TransitStats.Type.Monthly: format = "MMM"; break; case TransitStats.Type.Weekly: format = "MMM dd"; break; case TransitStats.Type.Yearly: format = "yyyy"; break; default: throw new ArgumentOutOfRangeException("type"); } Color fill = Color.Black; ColumnChart chart = new ColumnChart(); chart.ShowLineMarkers = false; chart.ShowLegend = true; chart.Line.Color = Color.White; chart.Line.Width = 2; chart.Fill.Color = engine.Border.Color = fill; chart.Fill.LinearGradientMode = LinearGradientMode.Vertical; chart.MaxColumnWidth = 100; foreach (TransitCounter counter in counters) { chart.Data.Add(new ChartPoint(counter.Created.ToString(format), counter.Count)); } charts.Add(chart); PicturePage.Picture picture = new PicturePage.Picture(); picture.Id = 0; picture.Modified = DateTime.UtcNow; picture.Name = RequestType.ToString(); MemoryStream ds = new MemoryStream(); engine.GetBitmap().Save(ds, ImageFormat.Png); picture.Bitmap = new byte[ds.Length]; MemoryStream ms = new MemoryStream(picture.Bitmap); ds.WriteTo(ms); return picture; }