2011-08-08 2 views
3

4 개 그룹에 대한 데이터를 표시하려고합니다. 각 그룹에는 1 개의 누적 형 열과 1 개의 누적 형 열이 있습니다. 여기 난 후 무엇을 모형의 네 그룹을 얻기Microsoft Chart 스택 누적 형으로 그룹화되지 않음

What i'm trying to do

가 쉽다는,이 내가 원하는 걸 제공 :

Series series = chart.Series.Add("Budget"); 
series.ChartType = SeriesChartType.Column; 
series.Name = "Budget"; 
series.Points.Add(55); 
series.Points.Add(10); 
series.Points.Add(50); 
series.Points.Add(50); 

series = chart.Series.Add("Actual"); 
series.ChartType = SeriesChartType.Column; 
series.Name = "Actual"; 
series.Points.Add(80); 
series.Points.Add(90); 
series.Points.Add(10); 
series.Points.Add(10); 

the easy graph

지금 내가 만들고 싶어 노란색 막대 막대를 쌓아. 나는 3 개의 시리즈를 추가하는 것으로 실험했다; ChartType = Column, StackedColumn, StackedColumn. 그러나 누적 된 열은 누적되지 않은 열의 바로 앞에 나타납니다.

what i'm getting

내가 가능한 시도하고있어 무엇인가?

+0

나는 동일한 필요를 가지고있다. 혹시 해결책을 찾았습니까? –

답변

0

내가 틀렸을 수도 있지만 시리즈는 추가 된 순서대로 표시됩니다.

+0

그들은 추가 된 순서대로 나타납니다. 하지만 내가 Column & StackedColumn을 결합하면 서로 겹치지 않고 서로 옆에있는 것처럼 보입니다. – TesterTurnedDeveloper

+0

차트 영역에 시리즈를 추가하기 전에 차트 유형을 설정하고 있습니까? – ykatchou

2
CustomPropertiesMethod 시리즈 호출에서

하고 스택 시리즈 1, 2 싶지만 시리즈 3이 원하는 경우 그룹을 예를 들어 다른 StackedGroupNames을 할당

Series1.CustomProperties = "StackedGroupName=Group1"; Series2.CustomProperties = "StackedGroupName=Group1"; Series3.CustomProperties = "StackedGroupName=Group2";

0

가에 있었다 나는 접근 방법 옆에 X 축 데이터를 위조하여 '실제'포인트의 양쪽에서 오프셋 된 다음 맞춤 라벨을 사용합니다. 나는 쉽게 붙여 넣지 않았다. 코드를 테스트,하지만 난 이런 식 생각 : 그 StackedGroupName 것은 작동

double pointWidth = 0.375; 
double pointOffset = pointWidth * 0.5; 
// Add first series - column 
_Chart.Add("Series1"); 
_Chart.Series["Series1"].ChartType = SeriesChartType.Column; 
_Chart.Series["Series1"]["PointWidth"] = pointWidth.ToString(); 
for (int ii = 0; ii < 10; ii++) 
{ 
    _Chart.Series["Series1"].Points.AddXY(ii - pointOffset, YourYValueHere); 
} 
// Add second series - stacked column 
_Chart.Add("Series2"); 
_Chart.Series["Series2"].ChartType = SeriesChartType.Column; 
_Chart.Series["Series2"]["PointWidth"] = pointWidth.ToString(); 
for (int ii = 0; ii < 10; ii++) 
{ 
    _Chart.Series["Series2"].Points.AddXY(ii + pointOffset, YourYValueHere); 
} 
// Add thrid series - stacked column 
_Chart.Add("Series3"); 
_Chart.Series["Series3"].ChartType = SeriesChartType.Column; 
_Chart.Series["Series3"]["PointWidth"] = pointWidth.ToString(); 
for (int ii = 0; ii < 10; ii++) 
{ 
    _Chart.Series["Series3"].Points.AddXY(ii + pointOffset, YourYValueHere); 
    _Chart.ChartAreas["Area1"].AxisX.CustomLabels.Add(
    ii - 0.5, ii + 0.5, ii); 
} 
_Chart.ChartAreas["Area1"].AxisX.Minimum = -0.5; 
_Chart.ChartAreas["Area1"].AxisX.Maximum = 
       _Chart.Series["Series3"].Points.Count - 0.5; 
_Chart.ChartAreas["Area1"].AxisX.LabelStyle.IsEndLabelVisible = true; 
_Chart.ChartAreas["Area1"].AxisX.IsMarginVisible = false; 

경우가 있지만, 훨씬 더 간단 할 것이다. 나는 그것을 시도 할 것이다.

+0

.NET Framework 3.5에서 작동하도록 StackedGroupName을 가져올 수 없습니다. –

관련 문제