首页 > 解决方案 > 删除图表区域和图例之间的空白

问题描述

如何删除我的图表区域和图例之间的这个大空白区域?看到我什至尝试了不同的对接方式,但差距仍然存在。

有任何想法吗?

图像1 图像2

标签: c#.net

解决方案


我从另一个应用程序生成的 CSV 文件中导入数据。每列都是一个新的数据系列,但它们都被添加到同一个图表和 chartArea 元素中。

     // Load data from CSV into a DataTable         
            DataTable dataTable = ReadCsvFile(System.IO.Path.GetFileName("mqlWeekRace.txt"), false);

            Chart chart1 = new Chart();
            chart1.Height = 1000;
            chart1.Width = 1500;
            chart1.ChartAreas.Add("ChartArea1");       
            chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineWidth = 1;
            chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot;
            chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineWidth = 1;
            chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot;
            chart1.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = false;
            // chart1.ChartAreas["ChartArea1"].AxisY.IsStartedFromZero = false;
        
            // Line colors
            string[] myColors = new string[] { "Blue", "DarkOrange", "Firebrick", "DarkSeaGreen", "DarkViolet", "Sienna",
                                               "DarkOrchid", "IndianRed", "ForestGreen", "Teal", "MidnightBlue", "DimGray" };
            int colorIndex = 0;
        
            foreach (DataColumn col in dataTable.Columns)
            {
                if (!col.ColumnName.StartsWith("Data") && col.ColumnName.Length > 1)
                {
                    chart1.Series.Add(col.ColumnName.ToString());
                    chart1.Series[col.ColumnName].ChartArea = "ChartArea1";
                   
                    chart1.Legends.Add(new Legend(col.ColumnName));      
                    chart1.Legends[col.ColumnName].LegendStyle = LegendStyle.Column;
                    chart1.Legends[col.ColumnName].Docking = Docking.Top;           
                    chart1.Legends[col.ColumnName].Font = new Font(FontFamily.GenericSansSerif, 15);                 
                    chart1.Series[col.ColumnName].ChartType = SeriesChartType.Line;
                    chart1.Series[col.ColumnName].XValueMember = "Data";
                    chart1.Series[col.ColumnName].YValueMembers = col.ColumnName.ToString();
                    chart1.Series[col.ColumnName].XValueType = ChartValueType.Date;
                    chart1.Series[col.ColumnName].BorderWidth = 3;
                    chart1.Series[col.ColumnName].Color = System.Drawing.Color.FromName(myColors[colorIndex]);
                    colorIndex++;
                }

            }
         
            chart1.DataManipulator.IsStartFromFirst = true;
            chart1.DataSource = dataTable;
            chart1.DataBind();


推荐阅读