乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 你好,请问有<em>StackedBar</em>的案例吗?能不能分享学习一下...

你好,请问有<em>StackedBar</em>的案例吗?能不能分享学习一下...

作者:乔山办公网日期:

返回目录:excel表格制作


看了下你的问题和图片,有一些不符,问题说的是StackedBar,图片却是StackedColumn的,下面的代码都以图片为准(其实就是根据你的需求更改一下图表类形就可以了):
1、关于去掉重复部门,可以在从数据库取值时处理,也可以在填充图表时处理,这个回答中就用在填充图表时处理吧,至于取数据不在此问题之内,所以假定你已经获得了数据的列表data这个变量,变量类型是List<Test>,Test这个类是自定e68a84e799bee5baa6e79fa5e98193333义的,只有三个属性Department,Month,Score,对应你数据库表中的三个字段;
2、现在就可以填充图表了,我没有改变图表属性,全部是在代码中处理的,写成了一个单独的方法,名字你随便起,比如FillChart()之类的:
this.chart1.Series.Clear(); //清除图表中的序列
List<string> departments=new List<string>(); //部门的字符串列表,用于X轴
List<string> months=new List<string>(); //月份的的字符串列表,用于图表的序列
foreach(Test test in data) //遍历得到数据中所有部门和月份
{
 if(!departments.Contains(test.Department))
departments.Add(test.Department);
if(!months.Contains(test.Month))
months.Add(test.Month);
}
for(int i=0;i<months.Count;i++) //根据要显示的月份数量添加序列
{
 Series series=new Series();
series.Name=months[i];
series.ChartType=SeriesChartType.StackedColumn;
this.chart1.Series.Add(series);
}
for(int i=0;i<departments.Count;i++) //根据部门和数据列表填充图表
{
 int[] scores=new int[3]; //你的数据只有3个月,如需修改时改一下这个数字就是了
 foreach(Test test in data) //遍历得到对应数据
if(test.Department==departments[i])
scores[Convert.ToInt16(test.Month.Substring(4,2))-1]=test.Score;
for(int j=0;j<scores.Length;j++)
this.chart1.Series[i].Points.AddXY(departments[j],scores[j]); //添加对应数据点
}
3、以上就是全部代码,已经处理了部门和数据月份比你举例的数字多的问题,部门多于3个无需理会,能正确处理,月份多于3个只需改一个数字,最多也就是12而已。希望对你有帮助,还有疑问请追问或是Hi

这里有一个我以前回答的相关问题,你先看一下有没有帮助:
https://zhidao.baidu.com/question/571023776.html
如果还有其它的问题或是需求,请追问时说明,再根据要求写一个示例给你,希望对你有帮助

你好,新手工具吧店长助手1元送高级版本,很合适的,去联系他们客服!



这里有一个StackedBar的,你先看一下有没有帮助:

 

http://zhidao.baidu.com/question/571023776.html

 

如有疑问或是其它问题,请追问或是Hi

 

刚刚找了一下,有一个示例,包括StackedArea、StackedBar、StackedColumn的,如需要我再上传

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网