2015-02-04 4 views
1

각 단일 차트 개체에 포함 된 개별 하위 차트를 개별 데이터 계열에 대한 개별 범례를 호스팅 할 수없는 것처럼 보입니다. 나는 이것이 가능한지 알고 싶습니다. 그렇다면이 코드를 조정하여이 효과를 얻을 수 있습니다.단일 차트에서 여러 ChartAreas에 대한 별도 범례

언뜻
chart_MyChart.Legends.Clear(); 

ChartArea chartArea_MyData = new ChartArea("My Data"); 
ChartArea chartArea_YourData = new ChartArea("Your Data"); 
ChartArea chartArea_OtherData = new ChartArea("Other Data"); 

chart_MyChart.ChartAreas.Clear(); 
chart_MyChart.ChartAreas.Add(chartArea_MyData); 
chart_MyChart.ChartAreas.Add(chartArea_YourData); 
chart_MyChart.ChartAreas.Add(chartArea_OtherData);    

/* Chart Area: My Data */ 
Series series01 = this.chart_MyChart.Series.Add("My first series"); 
series01.ChartArea = chartArea_MyData.Name; 
Series series02 = this.chart_MyChart.Series.Add("My second series"); 
series02.ChartArea = chartArea_MyData.Name; 

Legend legend01 = new Legend(series01.Name); 
Legend legend02 = new Legend(series02.Name); 

legend01.DockedToChartArea = chartArea_MyData.Name; 
legend02.DockedToChartArea = chartArea_MyData.Name; 

chart_MyChart.Legends.Add(legend01); 
chart_MyChart.Legends.Add(legend02); 

/* Chart Area: Your Data */ 
Series series03 = this.chart_MyChart.Series.Add("Your first series"); 
series03.ChartArea = chartArea_YourData.Name; 
Series series04 = this.chart_MyChart.Series.Add("Your second series"); 
series04.ChartArea = chartArea_YourData.Name; 

Legend legend03 = new Legend(series03.Name); 
Legend legend04 = new Legend(series04.Name); 

legend03.DockedToChartArea = chartArea_YourData.Name; 
legend04.DockedToChartArea = chartArea_YourData.Name; 

chart_MyChart.Legends.Add(legend03); 
chart_MyChart.Legends.Add(legend04); 

/* Chart Area: Other Data */ 
Series series05 = this.chart_MyChart.Series.Add("Other series"); 
series05.ChartArea = chartArea_OtherData.Name; 

Legend legend05 = new Legend(series05.Name); 

legend05.DockedToChartArea = chartArea_OtherData.Name; 

chart_MyChart.Legends.Add(legend05); 

foreach(Legend legend in chart_MyChart.Legends) 
{ 
    legend.IsDockedInsideChartArea = true; 
} 

foreach(widget myWidget in some.widget) 
{ 
    series01.Points.AddXY(widget.timeStamp, widget.data1); 
    series02.Points.AddXY(widget.timeStamp, widget.data2); 
    series03.Points.AddXY(widget.timeStamp, widget.data3); 
    series04.Points.AddXY(widget.timeStamp, widget.data4); 
    series05.Points.AddXY(widget.timeStamp, widget.data5); 
} 

답변

1

당신은 시리즈 이것은 당신이 다운로드 할 수있는 WebSamples 프로젝트에서있는 전설 간의 연결을 누락하는 것 다음과 같이 당신의 도움

코드에 대한

덕분입니다 here, 정말 전체 소스 예제를 볼 수 있습니다. MultiLegends 섹션에서

는 코드는 다음과 같습니다 : 나는 당신의 코드에서 보지 않았다

  // Add a second legend 
      Legend secondLegend = new Legend("Second"); 
      secondLegend.BackColor = Color.FromArgb(((System.Byte)(220)), ((System.Byte)(255)), ((System.Byte)(255)), ((System.Byte)(255))); 
      secondLegend.BorderColor = Color.Gray; 
      secondLegend.Font = this.Chart1.Legends["Default"].Font; 

      this.Chart1.Legends.Add(secondLegend); 

      // Associate Series 2 with the second legend 
      this.Chart1.Series["Series 2"].Legend = "Second"; 

유일한 것은 협회의 마지막 라인입니다.

+0

추가 참조 주셔서 감사합니다. – Kashif

관련 문제