我正在制作一个需要像c#中的堆积条形图一样的系统 我搜索了一些堆积条形图教程,试验代码等但似乎我不能达到我想要的输出,我搜索的大部分教程都是基本的条形图。现在我在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);
答案 0 :(得分: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);
答案 1 :(得分:-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