예제 #1
0
        void chartGraphConstruction(int Id1T, int Id2T, bool sum)
        {
            string Series1Name = NameIndex.IndexParse(Id1T);
            string Series2Name = "";

            if (!sum)
            {
                Series2Name = NameIndex.IndexParse(Id2T);
            }
            else if (sum)
            {
                Series2Name = "总计";
            }
            Font Title1Font = new Font("微软雅黑", 15);

            // 表格真初始化
            System.Windows.Forms.DataVisualization.Charting.Chart chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
            chart1.Size = new System.Drawing.Size(640, 320);
            chart1.ChartAreas.Add("ChartArea1");
            chart1.Legends.Add("Legend1");

            System.Windows.Forms.DataVisualization.Charting.Chart chart2 = new System.Windows.Forms.DataVisualization.Charting.Chart();
            chart2.Size = new System.Drawing.Size(640, 320);
            chart2.ChartAreas.Add("ChartArea1");
            chart2.Legends.Add("Legend1");

            System.Windows.Forms.DataVisualization.Charting.Chart chart3 = new System.Windows.Forms.DataVisualization.Charting.Chart();
            chart3.Size = new System.Drawing.Size(640, 320);
            chart3.ChartAreas.Add("ChartArea1");
            chart3.Legends.Add("Legend1");

            System.Windows.Forms.DataVisualization.Charting.Chart chart4 = new System.Windows.Forms.DataVisualization.Charting.Chart();
            chart4.Size = new System.Drawing.Size(640, 320);
            chart4.ChartAreas.Add("ChartArea1");
            chart4.Legends.Add("Legend1");

            System.Windows.Forms.DataVisualization.Charting.Chart chart5 = new System.Windows.Forms.DataVisualization.Charting.Chart();
            chart5.Size = new System.Drawing.Size(640, 320);
            chart5.ChartAreas.Add("ChartArea1");
            chart5.Legends.Add("Legend1");

            System.Windows.Forms.DataVisualization.Charting.Chart chart6 = new System.Windows.Forms.DataVisualization.Charting.Chart();
            chart6.Size = new System.Drawing.Size(640, 320);
            chart6.ChartAreas.Add("ChartArea1");
            chart6.Legends.Add("Legend1");



            #region 表格初始化

            //击杀总量表
            chart3.Series.Add(Series1Name);
            chart3.Series.Add(Series2Name);

            chart3.Legends["Legend1"].Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Top;
            chart3.Titles.Add("Title1");
            chart3.Titles["Title1"].Text = "全等级击杀量对比";
            chart3.Titles["Title1"].Font = Title1Font;
            chart3.ChartAreas["ChartArea1"].AxisX.Title = "等级";
            chart3.ChartAreas["ChartArea1"].AxisY.Title = "击杀量";

            //单挑表
            chart1.Series.Add("单挑流行度");
            chart1.Series.Add("单挑胜率");
            chart1.Series["单挑胜率"].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            chart1.Series["单挑流行度"].YAxisType  = System.Windows.Forms.DataVisualization.Charting.AxisType.Secondary;
            chart1.Series["单挑胜率"].BorderWidth = 5;
            chart1.Series["单挑胜率"].Color       = Color.DodgerBlue;
            chart1.Series["单挑流行度"].Color      = Color.Orange;
            chart1.Legends["Legend1"].Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Top;
            chart1.Titles.Add("Title1");
            chart1.Titles["Title1"].Text = "全等级单挑分析";
            chart1.Titles["Title1"].Font = Title1Font;
            chart1.ChartAreas["ChartArea1"].AxisX.Title              = "等级";
            chart1.ChartAreas["ChartArea1"].AxisY.Title              = "胜率百分比";
            chart1.ChartAreas["ChartArea1"].AxisY2.Title             = "流行度百分比";
            chart1.ChartAreas["ChartArea1"].AxisY2.MajorGrid.Enabled = false;
            chart1.ChartAreas["ChartArea1"].AxisY.Maximum            = 1.0;

            //GANK表
            chart2.Series.Add("GANK流行度");
            chart2.Series.Add("GANK胜率");
            chart2.Series["GANK胜率"].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            chart2.Series["GANK流行度"].YAxisType  = System.Windows.Forms.DataVisualization.Charting.AxisType.Secondary;
            chart2.Series["GANK胜率"].BorderWidth = 5;
            chart2.Series["GANK胜率"].Color       = Color.DodgerBlue;
            chart2.Series["GANK流行度"].Color      = Color.Orange;
            chart2.Legends["Legend1"].Docking   = System.Windows.Forms.DataVisualization.Charting.Docking.Top;
            chart2.Titles.Add("Title1");
            chart2.Titles["Title1"].Text = "全等级GANK分析";
            chart2.Titles["Title1"].Font = Title1Font;
            chart2.ChartAreas["ChartArea1"].AxisX.Title              = "等级";
            chart2.ChartAreas["ChartArea1"].AxisY.Title              = "胜率百分比";
            chart2.ChartAreas["ChartArea1"].AxisY2.Title             = "流行度百分比";
            chart2.ChartAreas["ChartArea1"].AxisY2.MajorGrid.Enabled = false;
            chart2.ChartAreas["ChartArea1"].AxisY.Maximum            = 1.0;

            //死亡表
            chart4.Series.Add(Series1Name);
            chart4.Series.Add(Series2Name);
            chart4.Legends["Legend1"].Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Top;
            chart4.Titles.Add("Title1");
            chart4.Titles["Title1"].Text = "全等级死亡量对比";
            chart4.Titles["Title1"].Font = Title1Font;
            chart4.ChartAreas["ChartArea1"].AxisX.Title = "等级";
            chart4.ChartAreas["ChartArea1"].AxisY.Title = "死亡量";

            //KDA表
            chart5.Series.Add(Series1Name);
            chart5.Series.Add(Series2Name);
            chart5.Legends["Legend1"].Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Top;
            chart5.Titles.Add("Title1");
            chart5.Titles["Title1"].Text = "全等级KDA对比";
            chart5.Titles["Title1"].Font = Title1Font;
            chart5.ChartAreas["ChartArea1"].AxisX.Title = "等级";
            chart5.ChartAreas["ChartArea1"].AxisY.Title = "KDA";

            #endregion

            if (!sum)
            {
                for (int i = 1; i < 19; i++)
                {
                    chart1.Series["单挑流行度"].Points.AddXY(i, statChart[i, 1]);
                    chart1.Series["单挑胜率"].Points.AddXY(i, statChart[i, 2]);
                    chart2.Series["GANK流行度"].Points.AddXY(i, statChart[i, 3]);
                    chart2.Series["GANK胜率"].Points.AddXY(i, statChart[i, 4]);
                    chart3.Series[Series1Name].Points.AddXY(i, statChart[i, 5]);
                    chart3.Series[Series2Name].Points.AddXY(i, statChart[i, 6]);
                    chart4.Series[Series1Name].Points.AddXY(i, statChart[i, 7]);
                    chart4.Series[Series2Name].Points.AddXY(i, statChart[i, 8]);
                    chart5.Series[Series1Name].Points.AddXY(i, statChart[i, 9]);
                    chart5.Series[Series2Name].Points.AddXY(i, statChart[i, 10]);
                }


                Directory.CreateDirectory(@"E:\lolLaneStat\" + Series1Name);

                chart1.SaveImage(@"E:\lolLaneStat\" + Series1Name + @"\" + Series2Name + "_1.png", System.Drawing.Imaging.ImageFormat.Png);
                chart2.SaveImage(@"E:\lolLaneStat\" + Series1Name + @"\" + Series2Name + "_2.png", System.Drawing.Imaging.ImageFormat.Png);
                chart3.SaveImage(@"E:\lolLaneStat\" + Series1Name + @"\" + Series2Name + "_3.png", System.Drawing.Imaging.ImageFormat.Png);
                chart4.SaveImage(@"E:\lolLaneStat\" + Series1Name + @"\" + Series2Name + "_4.png", System.Drawing.Imaging.ImageFormat.Png);
                chart5.SaveImage(@"E:\lolLaneStat\" + Series1Name + @"\" + Series2Name + "_5.png", System.Drawing.Imaging.ImageFormat.Png);
            }

            if (sum)
            {
                for (int i = 1; i < 19; i++)
                {
                    chart1.Series["单挑流行度"].Points.AddXY(i, statSumChart[i, 1]);
                    chart1.Series["单挑胜率"].Points.AddXY(i, statSumChart[i, 2]);
                    chart2.Series["GANK流行度"].Points.AddXY(i, statSumChart[i, 3]);
                    chart2.Series["GANK胜率"].Points.AddXY(i, statSumChart[i, 4]);
                    chart3.Series[Series1Name].Points.AddXY(i, statSumChart[i, 5]);
                    chart3.Series[Series2Name].Points.AddXY(i, statSumChart[i, 6]);
                    chart4.Series[Series1Name].Points.AddXY(i, statSumChart[i, 7]);
                    chart4.Series[Series2Name].Points.AddXY(i, statSumChart[i, 8]);
                    chart5.Series[Series1Name].Points.AddXY(i, statSumChart[i, 9]);
                    chart5.Series[Series2Name].Points.AddXY(i, statSumChart[i, 10]);
                }


                Directory.CreateDirectory(@"E:\lolLaneStat\" + Series1Name);

                chart1.SaveImage(@"E:\lolLaneStat\" + Series1Name + @"\" + Series2Name + "1.png", System.Drawing.Imaging.ImageFormat.Png);
                chart2.SaveImage(@"E:\lolLaneStat\" + Series1Name + @"\" + Series2Name + "2.png", System.Drawing.Imaging.ImageFormat.Png);
                chart3.SaveImage(@"E:\lolLaneStat\" + Series1Name + @"\" + Series2Name + "3.png", System.Drawing.Imaging.ImageFormat.Png);
                chart4.SaveImage(@"E:\lolLaneStat\" + Series1Name + @"\" + Series2Name + "4.png", System.Drawing.Imaging.ImageFormat.Png);
                chart5.SaveImage(@"E:\lolLaneStat\" + Series1Name + @"\" + Series2Name + "5.png", System.Drawing.Imaging.ImageFormat.Png);
            }

            chart1.Series.Clear();
            chart1.Titles.Clear();
            chart2.Series.Clear();
            chart2.Titles.Clear();
            chart3.Series.Clear();
            chart3.Titles.Clear();
            chart4.Series.Clear();
            chart4.Titles.Clear();
            chart5.Series.Clear();
            chart5.Titles.Clear();
            chart1.Dispose();
            chart2.Dispose();
            chart3.Dispose();
            chart4.Dispose();
            chart5.Dispose();

            GC.Collect();
        }