1

我正在制作一个需要类似 c# 中的堆叠条形图的系统基本条形图。现在我在datagridview(彩色单元格)中做了这个,但是用datagridview制作堆积条形图似乎有点愚蠢。

图片链接:http ://tinypic.com/r/v8oe8k/8

这是我的问题,看看这张照片,这可以在堆积条形图中做到这一点吗?

1.)一个系列可以继续到另一列而没有第一列的另一个堆栈?(系列 2)

2.) 一个系列可以堆叠在一个空白空间上吗?(系列 5)

3.)如果以上两项都可以,多系列条形图也可以吗?(可选的)

如果可能的话,请帮帮我(提供示例代码片段真的很有帮助)

谢谢你,祝你有美好的一天

编辑:这是我的代码:

        chart1.Series.Add("Series 1");
        chart1.Series.Add("Series 2");
        chart1.Series.Add("Series 3");
        chart1.Series.Add("Series 4");
        chart1.Series.Add("Series 5");
        chart1.Series["Series 1"].ChartType = SeriesChartType.StackedColumn;
        chart1.Series["Series 2"].ChartType = SeriesChartType.StackedColumn;
        chart1.Series["Series 3"].ChartType = SeriesChartType.StackedColumn;
        chart1.Series["Series 4"].ChartType = SeriesChartType.StackedColumn;
        chart1.Series["Series 5"].ChartType = SeriesChartType.StackedColumn;

        chart1.Series["Series 1"].Points.AddXY(1, 50);
        chart1.Series["Series 2"].Points.AddXY(1, 100);
        chart1.Series["Series 2"].Points.AddXY(2, 50);
        chart1.Series["Series 3"].Points.AddXY(2, 200);            
        chart1.Series["Series 3"].Points.AddXY(3, 100);
        chart1.Series["Series 4"].Points.AddXY(3, 50);
        chart1.Series["Series 5"].Points.AddXY(5, 150);
4

2 回答 2

1

要删除空白空间,对于每个 X 值,您必须在所有系列中具有相同数量的点:

    chart1.Series["Series 1"].Points.AddXY(1, 50);
    chart1.Series["Series 2"].Points.AddXY(1, 100);
    chart1.Series["Series 3"].Points.AddXY(1, 0);   
    chart1.Series["Series 4"].Points.AddXY(1, 0);
    chart1.Series["Series 5"].Points.AddXY(1, 0); 

    chart1.Series["Series 1"].Points.AddXY(2, 0);     
    chart1.Series["Series 2"].Points.AddXY(2, 50);
    chart1.Series["Series 3"].Points.AddXY(2, 200);   
    chart1.Series["Series 4"].Points.AddXY(2, 0); 
    chart1.Series["Series 5"].Points.AddXY(2, 0); 

    chart1.Series["Series 1"].Points.AddXY(3, 0);
    chart1.Series["Series 2"].Points.AddXY(3, 0);         
    chart1.Series["Series 3"].Points.AddXY(3, 100);
    chart1.Series["Series 4"].Points.AddXY(3, 50);
    chart1.Series["Series 5"].Points.AddXY(3, 0);

    chart1.Series["Series 1"].Points.AddXY(5, 0);
    chart1.Series["Series 2"].Points.AddXY(5, 0);
    chart1.Series["Series 3"].Points.AddXY(5, 0);
    chart1.Series["Series 4"].Points.AddXY(5, 0);
    chart1.Series["Series 5"].Points.AddXY(5, 150);
于 2016-01-12T10:33:58.923 回答
-1

尝试创建一个自定义控件来绘制条形图。查找有关创建自己的控件的一些教程。然后覆盖控件的绘制并绘制图表。

自定义控件教程: http ://techymedia.com/post/2013/04/21/How-to-create-custom-Control-In-C-Sharp-Tutorial-Step-By-Step.aspx (关于创建控件,你可以添加自己的变量,然后在paint方法中绘制图表。)

图形控制: http: //www.codeproject.com/Articles/5431/A-flexible-charting-library-for-NET

于 2014-02-24T00:28:00.470 回答