protected override void OnLoad(EventArgs e) { arguments = new ExperimentationParameters() { VaccineEfficiencyRatio = 0.1, AtRiskRatio = 0, VaccinatedRatio = 0, ChiSquaredDistributionDegreesOfFreedom = 7, InfectionChiSquaredFactor = 4 * 7 / 10, RecoveryChiSquaredFactor = 5 * 3 / 10, ChiSquaredRecoveryDistributionDegreesOfFreedom = 7, InfectionProbabilities = new List <double>() { 0.2, 0.2, 0.5, 0.4, 0.35, 0.3, 0.2, 0.2, 0.1, 0.1 }, //RecoveryProbabilities = new List<double>() { 0.05, 0.1, 0.25, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1 }, RecoveryProbabilities = new List <double>() { 0.05, 0.05, 0.1, 0.2, 0.3, 0.45, 0.6, 0.75, 0.9, 1 }, DaysOfImmunity = 4 }; SeriesListBox.BackColor = Color.YellowGreen; NetworkSelectBox.Text = "Seleccione Red"; NetworkSelectBox.Items.Add("Red Simple"); NetworkSelectBox.Items.Add("Red Media"); NetworkSelectBox.Items.Add("Red Grande"); NetworkSelectBox.Items.Add("Red Gigante"); NetworkSelectBox.Items.Add("Red Masiva"); NetworkSelectBox.Items.Add("Red Gargantua"); _formViewer = new Microsoft.Msagl.GraphViewerGdi.GViewer(); Simulator = new InfectionSimulator(new SimulatorParameters()); _formViewer.Graph = Simulator.SetCurrentNetworkSimulation("Red Simple"); NetworkSelectBox.SelectedItem = "Red Simple"; _formViewer.ToolBarIsVisible = false; _formViewer.LayoutEditingEnabled = false; ////_formViewer.LayoutEditingEnabled = true; ////_formViewer.FitGraphBoundingBox(); //TextBoxAnalysis = ((RichTextBox)this.Controls.Find("AnalysisBox", true).First()).Lines; this.SuspendLayout(); //UpdateAnalysisTextBoxes(); //_formViewer.MouseClick += GraphPanel_MouseClick; _formViewer.Dock = System.Windows.Forms.DockStyle.Fill; ////busco panel y agrego el viewer var panel = this.Controls.Find("GraphPanel", true).First(); panel.Dock = DockStyle.Fill; panel.Controls.Add(_formViewer); //InfectionChart = new Chart(); //InfectionChart.Series.Clear(); //var resultsPanel = this.Controls.Find("GraphResultsPanel", true).First(); //resultsPanel.Controls.Add(InfectionChart); //InfectionChart.ChartAreas.Add(new ChartArea()); //InfectionChart.Legends.Add(new Legend("Infected Per Day")); this.ResumeLayout(); }
private void Graficar_Infecciosidad_Click(object sender, EventArgs e) { for (int immunityDays = 12; immunityDays < 13; immunityDays += 4) { List <double> averageInfectedPerDay = new List <double>(); Chart experimentResultChart = new Chart(); System.Drawing.Color[] colors = { System.Drawing.Color.ForestGreen, System.Drawing.Color.Gold, System.Drawing.Color.OrangeRed, System.Drawing.Color.DeepSkyBlue, System.Drawing.Color.Black, System.Drawing.Color.Fuchsia, System.Drawing.Color.SaddleBrown, System.Drawing.Color.DimGray }; _simulationParameters.VaccinatedRatio = 0; _simulationParameters.DaysOfImmunity = immunityDays; for (int k = 6; k < 7; k += 1) { _simulationParameters.InfectionChiSquaredFactor = k; for (int i = 0; i < infectionTestDays; i++) { averageInfectedPerDay.Add(0); } var seriesInfected = new System.Windows.Forms.DataVisualization.Charting.Series { Name = $"K = {k}", Color = colors[k - 1], IsVisibleInLegend = true, IsXValueIndexed = true, ChartType = SeriesChartType.Line, Font = new Font(FontFamily.GenericMonospace, 50, System.Drawing.FontStyle.Regular), }; //seriesInfected.Name //experimentResultChart.Width = 200; //experimentResultChart.Series.Titles //seriesInfected. experimentResultChart.Series.Add(seriesInfected); var a = experimentResultChart.Series[0]; for (int i = 0; i < experimentsAmount; i++) { var testSimulator = new InfectionSimulator(_simulationParameters); testSimulator.SetCurrentNetworkSimulation("Red2"); testSimulator.InfectRandomNode(); for (int j = 0; j < infectionTestDays; j++) { testSimulator.RunIteration(); } var iterationInfectedPerDay = testSimulator.GetInfectionAmountHistory(); for (int j = 0; j < infectionTestDays; j++) { averageInfectedPerDay[j] += iterationInfectedPerDay[j]; } } for (int j = 0; j < infectionTestDays; j++) { averageInfectedPerDay[j] = averageInfectedPerDay[j] / experimentsAmount; experimentResultChart.Series.First(s => s.Name == $"K = {k}").Points .AddXY(j, averageInfectedPerDay[j]); } } //experimentResultChart.Scale(new SizeF(5, 5)); experimentResultChart.Size = new Size(1024, 800); //experimentResultChart.Series[0].MarkerBorderWidth = 2000; var chartArea = new ChartArea(); chartArea.AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None; chartArea.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None; chartArea.AxisY.LabelStyle.Font = new System.Drawing.Font("Trebuchet MS", 15.25F, System.Drawing.FontStyle.Bold); chartArea.AxisX.LabelStyle.Font = new System.Drawing.Font("Trebuchet MS", 15.25F, System.Drawing.FontStyle.Bold); chartArea.IsSameFontSizeForAllAxes = true; experimentResultChart.ChartAreas.Add(chartArea); experimentResultChart.Legends.Add(new Legend("Infected Per Day")); experimentResultChart.SaveImage(Environment.CurrentDirectory + $"\\EvaluarOscilacionesK6Y{immunityDays}DiasDeInmunidad.png", ChartImageFormat.Png); } MessageBox.Show("Se terminaron de guardar los resultados obtenidos"); }