Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有堆叠列和两个Y轴的图形_C#_Asp.net_Webforms_Mschart - Fatal编程技术网

C# 具有堆叠列和两个Y轴的图形

C# 具有堆叠列和两个Y轴的图形,c#,asp.net,webforms,mschart,C#,Asp.net,Webforms,Mschart,我正在尝试创建一个包含多个列的图表,其中一些列是堆叠的,也有2个Y轴 当所有列都使用主y轴时,它们正确地并排显示。 但当一个(或多个,但不是全部)使用第二个y轴时,似乎会在每个轴上堆叠所有列,而不是并排显示它们。 如何使列并排显示,同时显示两个y轴。我在下面包含了我的演示页面代码 aspx: 我认为您需要设置系列的自定义属性。默认情况下,此属性设置为“自动”。您需要将其更改为True,以便它始终并排绘制 Chart1.Series["DevelopmentBacklog"].CustomPr

我正在尝试创建一个包含多个列的图表,其中一些列是堆叠的,也有2个Y轴

当所有列都使用主y轴时,它们正确地并排显示。

但当一个(或多个,但不是全部)使用第二个y轴时,似乎会在每个轴上堆叠所有列,而不是并排显示它们。

如何使列并排显示,同时显示两个y轴。我在下面包含了我的演示页面代码

aspx:


我认为您需要设置系列的自定义属性。默认情况下,此属性设置为“自动”。您需要将其更改为True,以便它始终并排绘制

Chart1.Series["DevelopmentBacklog"].CustomProperties = "DrawSideBySide=True";
Chart1.Series["DevDaysCompleted"].CustomProperties = "DrawSideBySide=True";
Chart1.Series["DevCapacity"].CustomProperties = "DrawSideBySide=True";
Chart1.Series["NewDaysScheduled"].CustomProperties = "DrawSideBySide=True";

不幸的是,这不起作用,没有效果。该属性似乎不适用于StackedColumns,它仅在MSDN页面上列出“条形图、列、范围列、方框图、范围栏、错误栏”。
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.DataVisualization.Charting;
using System.Drawing;

public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string[] xAxis = { "Jan 2011", "Feb 2011", "Mar 2011", "Apr 2011", "May 2011", "Jun 2011", "Jul 2011", "Aug 2011" };
        double[] yAxisDevBacklog = { 220, 200, 120, 30, 25, 50, 30, 590 };
        double[] yAxisDevDaysCompleted = { 140, 145, 165, 105, 98, 140, 80, 100 };
        double[] yAxisDevCapacity = { 140, 155, 182, 122, 184, 210, 190, 205};
        double[] yAxisNewDaysScheduled = { 29, 40, 55, 48, 59, 75, 70, 182 };

        Chart1.Series["DevelopmentBacklog"].Points.DataBindXY(xAxis, yAxisDevBacklog);
        Chart1.Series["DevelopmentBacklog"].ChartType = SeriesChartType.StackedColumn;
        Chart1.Series["DevelopmentBacklog"].BorderWidth = 3;
        Chart1.Series["DevelopmentBacklog"].Color = Color.Blue;
        //// Uncomment this line to use the secondary y axis
        //// Chart1.Series["DevelopmentBacklog"].YAxisType = AxisType.Secondary;
        Chart1.Series["DevelopmentBacklog"]["StackedGroupName"] = "DevelopmentBacklog";

        Chart1.Series["NewDaysScheduled"].Points.DataBindXY(xAxis, yAxisNewDaysScheduled);
        Chart1.Series["NewDaysScheduled"].ChartType = SeriesChartType.StackedColumn;
        Chart1.Series["NewDaysScheduled"].BorderWidth = 3;
        Chart1.Series["NewDaysScheduled"].Color = Color.Green;
        Chart1.Series["NewDaysScheduled"]["StackedGroupName"] = "NewDaysScheduled";

        Chart1.Series["DevDaysCompleted"].Points.DataBindXY(xAxis, yAxisDevDaysCompleted);
        Chart1.Series["DevDaysCompleted"].ChartType = SeriesChartType.StackedColumn;
        Chart1.Series["DevDaysCompleted"].BorderWidth = 3;
        Chart1.Series["DevDaysCompleted"].Color = Color.LightGray;
        Chart1.Series["DevDaysCompleted"]["StackedGroupName"] = "DevDaysCompleted";

        Chart1.Series["DevCapacity"].Points.DataBindXY(xAxis, yAxisDevCapacity);
        Chart1.Series["DevCapacity"].ChartType = SeriesChartType.StackedColumn;
        Chart1.Series["DevCapacity"].BorderWidth = 3;
        Chart1.Series["DevCapacity"].Color = Color.OrangeRed;
        Chart1.Series["DevCapacity"]["StackedGroupName"] = "DevDaysCompleted";

        Chart1.ChartAreas["chartArea"].AxisX.MajorGrid.Enabled = false;
        Chart1.ChartAreas["chartArea"].AxisY2.MajorGrid.Enabled = false;
    }
}
Chart1.Series["DevelopmentBacklog"].CustomProperties = "DrawSideBySide=True";
Chart1.Series["DevDaysCompleted"].CustomProperties = "DrawSideBySide=True";
Chart1.Series["DevCapacity"].CustomProperties = "DrawSideBySide=True";
Chart1.Series["NewDaysScheduled"].CustomProperties = "DrawSideBySide=True";