2016-08-19 9 views
0

변화 그래프 데이터 값을 수용하기 위해 범례를 배치하는 데 문제가 있습니다.ZedGraph 범례 텍스트 위치

Zedgraph Y 축 스케일은 auto-GraphPane.YAxis.Scale.MinAuto = true로 설정됩니다. 그래프는 콤보 박스에 의해 선택된 다른 데이터 stes로 채워집니다. 이것은 분명히 Scale.Min 값의 변동을 초래합니다. 전설이 최소값 줄 아래에 있습니다. 다른 출처를 선택하면이 범례의 위치가 바뀝니다.

범례 위치를 입력에 관계없이 같은 위치에 두도록하려면 어떻게해야합니까? 내가 필요로하는 것은 축의 최소값을 얻고 그래프 데이터 바로 아래에 음수로 오프셋하는 것입니다. 규모가 0 일 때 쉽게 될 것입니다. 그러나 변화함에 따라 나는 잃어버린 ...

이 그림들은 다른 데이터로 범례가 어떻게 움직이는지를 보여줍니다.

Pic showing scale min of 1.2Pic with scale min of 9.5

이 텍스트 배치를 참조하는 코드입니다. UNKNOWN을 나타내는 오프셋 값은 매번 결정할 때 필요합니다.

TextObj Qtr1Text = new TextObj("Q" + Qtr1 + " 16", dQtrFirst, myPane.YAxis.Scale.Min - UNKNOWN); 

그림에서 알 수 있듯이 'Q2 16'오프셋은 모두 0.08입니다.

또는이 모든 작업을 수행하는 데 더 좋은 방법이 있습니까?

답변

0

마지막으로 신뢰할 수있는 방법을 찾아 냈습니다.

double yOffset = (myPane.YAxis.Scale.Max - myPane.YAxis.Scale.Min)/36; //magic number 
TextObj Qtr1Text = new TextObj("Text Value", xLocation, yOffset); 
myPane.GraphObjList.Add(Qtr1Text); 

값 36은 원하는 음수 간격을 제공하기 위해 조정해야하는 임의의 숫자입니다. 36은 상단 그림과 같이 오른쪽에 'Q3 16'과 같은 간격을줍니다.