Charts 尝试创建动态Dundas Stackedarea图表

Charts 尝试创建动态Dundas Stackedarea图表,charts,stacked-area-chart,dundas,Charts,Stacked Area Chart,Dundas,下午好。我试着研究,但还没有找到任何人有这样的例子,我通常不寻求帮助,我只是想出来,但这一个正在杀死我!我正在尝试动态创建一个堆叠面积图,我已经可以创建一个动态面积图,但我一辈子都不知道如何获得一个堆叠面积图来堆叠系列。我在excel中也做了类似的东西,我可以把它绘制成图表,但它不是动态的。 我有如下数据: 这就是我希望图表的外观: 如何将数据关联到类别或我需要执行的任何操作?我有数组中的数据,但我似乎不知道如何将图表堆叠起来。有人能帮忙吗?如果您需要更多信息,请询问,我知道我没有包括我的代

下午好。我试着研究,但还没有找到任何人有这样的例子,我通常不寻求帮助,我只是想出来,但这一个正在杀死我!我正在尝试动态创建一个堆叠面积图,我已经可以创建一个动态面积图,但我一辈子都不知道如何获得一个堆叠面积图来堆叠系列。我在excel中也做了类似的东西,我可以把它绘制成图表,但它不是动态的。 我有如下数据:

这就是我希望图表的外观:

如何将数据关联到类别或我需要执行的任何操作?我有数组中的数据,但我似乎不知道如何将图表堆叠起来。有人能帮忙吗?如果您需要更多信息,请询问,我知道我没有包括我的代码,主要是因为它非常难看和冗长,但如果有人需要,可以尝试将其压缩一点并简化

我的代码如下(也许这会有帮助,即使它很难看)

提前多谢! 稍后

以下是一个示例:

    <asp:Chart ID="Chart1" runat="server" Width="600px">
        <Series>
            <asp:Series Name="Series1" ChartType="StackedArea">
                <Points>
                    <asp:DataPoint XValue="1" YValues="10" />
                    <asp:DataPoint XValue="2" YValues="20" />
                    <asp:DataPoint XValue="3" YValues="30" />
                    <asp:DataPoint XValue="4" YValues="15" />
                </Points>
            </asp:Series>
            <asp:Series ChartArea="ChartArea1" ChartType="StackedArea" Name="Series2">
                <Points>
                    <asp:DataPoint XValue="1" YValues="20" />
                    <asp:DataPoint XValue="2" YValues="40" />
                    <asp:DataPoint XValue="3" YValues="60" />
                    <asp:DataPoint XValue="4" YValues="45" />
                </Points>
            </asp:Series>
        </Series>
        <ChartAreas>
            <asp:ChartArea Name="ChartArea1">
                <AxisY>
                    <MajorGrid LineColor="DarkGray" LineDashStyle="Dot" />
                </AxisY>
                <AxisX>
                    <MajorGrid LineColor="DarkGray" LineDashStyle="Dot" />
                </AxisX>
            </asp:ChartArea>
        </ChartAreas>
    </asp:Chart>
编辑2:添加图例:

    protected void Page_Load(object sender, EventArgs e)
    {
        Chart chart1 = new Chart();

        ChartArea area1 = new ChartArea("Area1");

        Legend legend1 = new Legend("Legend1");
        legend1.Docking = Docking.Top;
        legend1.Alignment = System.Drawing.StringAlignment.Center;

        Series series1 = new Series("Bought");
        series1.ChartType = SeriesChartType.StackedArea;
        series1.Points.Add(new DataPoint { XValue = 1, YValues = new double[] { 10 } });
        series1.Points.Add(new DataPoint { XValue = 2, YValues = new double[] { 20 } });
        series1.Points.Add(new DataPoint { XValue = 3, YValues = new double[] { 30 } });
        series1.Points.Add(new DataPoint { XValue = 4, YValues = new double[] { 15 } });
        series1.ChartArea = "Area1";
        series1.Legend = "Legend1";

        Series series2 = new Series("Sold");
        series2.ChartType = SeriesChartType.StackedArea;
        series2.Points.Add(new DataPoint { XValue = 1, YValues = new double[] { 20 } });
        series2.Points.Add(new DataPoint { XValue = 2, YValues = new double[] { 40 } });
        series2.Points.Add(new DataPoint { XValue = 3, YValues = new double[] { 60 } });
        series2.Points.Add(new DataPoint { XValue = 4, YValues = new double[] { 45 } });
        series2.ChartArea = "Area1";
        series2.Legend = "Legend1";

        chart1.ChartAreas.Add(area1);
        chart1.Legends.Add(legend1);
        chart1.Series.Add(series1);
        chart1.Series.Add(series2);

        Controls.Add(chart1);
    }

这是给WinForms的吗?网络表单?WPF?对不起,它目前在aspx,VB.net中,dundas.charting.webcontrol是名称空间,我猜是webforms。我想建议
System.Web.UI.DataVisualization.charting
它有一个
StackedArea
图表类型,但听起来你已经在使用其他东西了。另外,请在你的问题中添加适当的标签,以便获得适当的帮助。我不碰任何写有“VB”的东西…:O)你会不会碰巧有一个该名称空间的stackedarea示例?我对邓达斯不是一成不变的,可以很容易地转换。至于标记它,由于C#和VB非常接近,而且有这么多转换器,我不介意有C#中的示例,如果它们可用,大多数时候所有的好示例都是C#中的,即使MS也喜欢用C#给出示例,所以我已经习惯了转换。我感谢你能提供的任何帮助!非常感谢。你会不会碰巧有一个动态生成的示例?我在这里看到了它是如何工作的,但是如果我想在代码中动态地创建它,然后将它添加到页面中,那么您是否有相关的代码?我已经添加了名称空间,但我还不知道如何用它制作图表。我现在没有,但它看起来就像你在帖子中已经做的一样。非常感谢!!!这真让我受不了!我会试试这个,也许我只是在做这件事的方式上很愚蠢,这在我的头脑中是有意义的,但当它出来的时候就没有了。好吧,我明白你的意思。但是我有一个问题,如果说1,2,3,4是xaxis的标签,但是实际的系列1被称为“买的”,系列2被称为“卖的”,那么如何显示这一点,这就是我的问题实际发生的地方。我在我的代码中发现了一些问题,我已经解决了,但是我不知道如何让那个部分工作。好的,再次感谢,我想我明白了,我想我已经考虑过了。现在,我想知道如何在我的代码中使用它。
    protected void Page_Load(object sender, EventArgs e)
    {
        Chart chart1 = new Chart();

        ChartArea area1 = new ChartArea("Area1");

        Series series1 = new Series();
        series1.ChartType = SeriesChartType.StackedArea;
        series1.Points.Add(new DataPoint { XValue = 1, YValues = new double[] { 10 } });
        series1.Points.Add(new DataPoint { XValue = 2, YValues = new double[] { 20 } });
        series1.Points.Add(new DataPoint { XValue = 3, YValues = new double[] { 30 } });
        series1.Points.Add(new DataPoint { XValue = 4, YValues = new double[] { 15 } });
        series1.ChartArea = "Area1";

        Series series2 = new Series();
        series2.ChartType = SeriesChartType.StackedArea;
        series2.Points.Add(new DataPoint { XValue = 1, YValues = new double[] { 20 } });
        series2.Points.Add(new DataPoint { XValue = 2, YValues = new double[] { 40 } });
        series2.Points.Add(new DataPoint { XValue = 3, YValues = new double[] { 60 } });
        series2.Points.Add(new DataPoint { XValue = 4, YValues = new double[] { 45 } });
        series2.ChartArea = "Area1";

        chart1.ChartAreas.Add(area1);
        chart1.Series.Add(series1);
        chart1.Series.Add(series2);

        Controls.Add(chart1);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        Chart chart1 = new Chart();

        ChartArea area1 = new ChartArea("Area1");

        Legend legend1 = new Legend("Legend1");
        legend1.Docking = Docking.Top;
        legend1.Alignment = System.Drawing.StringAlignment.Center;

        Series series1 = new Series("Bought");
        series1.ChartType = SeriesChartType.StackedArea;
        series1.Points.Add(new DataPoint { XValue = 1, YValues = new double[] { 10 } });
        series1.Points.Add(new DataPoint { XValue = 2, YValues = new double[] { 20 } });
        series1.Points.Add(new DataPoint { XValue = 3, YValues = new double[] { 30 } });
        series1.Points.Add(new DataPoint { XValue = 4, YValues = new double[] { 15 } });
        series1.ChartArea = "Area1";
        series1.Legend = "Legend1";

        Series series2 = new Series("Sold");
        series2.ChartType = SeriesChartType.StackedArea;
        series2.Points.Add(new DataPoint { XValue = 1, YValues = new double[] { 20 } });
        series2.Points.Add(new DataPoint { XValue = 2, YValues = new double[] { 40 } });
        series2.Points.Add(new DataPoint { XValue = 3, YValues = new double[] { 60 } });
        series2.Points.Add(new DataPoint { XValue = 4, YValues = new double[] { 45 } });
        series2.ChartArea = "Area1";
        series2.Legend = "Legend1";

        chart1.ChartAreas.Add(area1);
        chart1.Legends.Add(legend1);
        chart1.Series.Add(series1);
        chart1.Series.Add(series2);

        Controls.Add(chart1);
    }