范围重叠条形图

时间:2014-06-08 18:47:12

标签: c# wpf winforms charts bar-chart

我正在创建一个范围重叠条形图,它应该在单个条形图中显示多个值,并且应该更改颜色。为了使我想要的东西说清楚我画了一个:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以在Visual Studio工具箱中使用Microsoft图表控件。您需要创建多个系列,以显示重叠图表。这个link会对您有所帮助。

这是一些代码......

DataSet dataSet;
ConnectionClass.GetInstance().connection_string = Properties.Settings.Default.MindMuscleConnectionString;
ConnectionClass.GetInstance().Sql = "Select Count(MemberInfo.memberName) as 'Members', CompetitionName as 'Competition' FROM MemberInfo, MemberBodyInfo, Competition WHERE MemberInfo.memberID = MemberBodyInfo.memberID AND MemberBodyInfo.weight >= Competition.CompetitionCategory and MemberBodyInfo.weight <= Competition.CompetitionCategory + 5 group by CompetitionName;";
dataSet = ConnectionClass.GetInstance().GetConnection;
chart1.Series["Series1"].Name = "Members";
chart1.Series["Members"].YValueMembers = "Members";
chart1.Series["Members"].XValueMember = "Competition";
chart1.Series.Add("Members2");
chart1.Series["Members2"].ChartType = SeriesChartType.StackedColumn;
chart1.Series["Members2"].IsValueShownAsLabel = true;
chart1.Series["Members2"].YValueMembers = "Members";
chart1.Series["Members2"].XValueMember = "Competition";
this.chart1.Titles.Add("Competition Participants");   // Set the chart title
chart1.Series["Members"].ChartType = SeriesChartType.StackedColumn;
chart1.Series["Members"].IsValueShownAsLabel = true;  // To show chart value 
chart1.DataSource = dataSet;
chart1.DataBind();

看起来像:

enter image description here

我实际上并没有从一些不同的数据创建一个新的系列......这两个系列在这里是相同的,但我刚给你看了一个例子。您必须使用数据填充系列。

现在如果你改变了

chart1.Series["Members2"].ChartType = SeriesChartType.StackedColumn;
chart1.Series["Members"].ChartType = SeriesChartType.StackedColumn;

chart1.Series["Members2"].ChartType = SeriesChartType.StackedBar;
chart1.Series["Members"].ChartType = SeriesChartType.StackedBar;

图表看起来就像你的图纸:

enter image description here