2016-09-15 28 views
1

해당 곡선에서 선택된 항목 위치를 사용하여 정규 분포 곡선 (SeriesChartType.Spline)을 플롯하려고합니다. 내 x 축은 좀 번거 롭기 때문에 정리하려고하는데 특정 위치에 축 레이블을 표시하는 방법을 생각할 수 없습니다.mschart의 특정 데이터 포인트에 x 축 레이블 표시

{x (0), x (mean), x (n)}에 값을 표시하고 커브에서 선택한 항목의 데이터 요소의 x 축 값을 표시하고 싶습니다.

enter image description here

나는

.ChartAreas(0).AxisX.Interval 

와 함께 연주 해봤지만 반드시 표준 간격 범위가 없습니다.

지정된 데이터 포인트에서만 x 축 레이블을 표시 할 수있는 방법이 있습니까?

[편집] :

제안 된대로이 차트에 대한 몇 가지 사용자 지정 레이블을 구현했습니다. 그것들은 내가 직관적으로 사용하는 것이 아니지만 결국 그들은 일을했다.

'//create x-axis labels 
mu = Math.Round(mu, 2, MidpointRounding.AwayFromZero) 
bci = Math.Round(CDbl(bci), 2, MidpointRounding.AwayFromZero) 
Dim muLabel = String.Format("{0}({1})", "µ", mu) 

'//Fit axis 
With .ChartAreas(0) 
    With .AxisX 
     .MajorGrid.LineWidth = 0 
     .MajorTickMark.Enabled = false 
     .Minimum = 0 
     With .CustomLabels 
      .Add(New CustomLabel(0, 0.4, 0, 0, LabelMarkStyle.LineSideMark))      '//origin label 
      .Add(New CustomLabel(mu-10, mu + 10, muLabel, 0, LabelMarkStyle.LineSideMark))   '//mean label) 
      .Add(New CustomLabel(bci-10, bci + 10, bci.ToString, 0, LabelMarkStyle.LineSideMark)) '//index label 
     End With 
     With .LabelStyle 
      .Format = "{0.00}" 
      .Font = New Font("Microsoft Sans Serif", 8) 
     End With 
... 

레이블에 대해 선택한 범위는 조금 임의적입니다. 내 데이터 분포가 많이 바뀌지는 않을 것이므로 레이블이 중앙에 놓 이도록 글꼴과 합리적인 범위를 골랐습니다. 훨씬 더 읽기 지금 보이는 : http://i.imgur.com/7buwdyk.png

답변

1

당신은 CustomLabels에 의해 정상적인 라벨을 교체하거나

  • 의 선택할 수 있습니다. 자신의 위치를 ​​설정할 수 없기 때문에 약간 까다 롭습니다. 대신 두 개의 위치 (FromPositionToPosition)가 CustomLabel이 가운데에 배치되어야하는 범위를 선언해야합니다. CustomLabels을 사용하면 정상적인 것은 표시되지 않으며이 표시됩니다.

  • 또는 TextAnnotations을 추가 할 수 있습니다. AnchorX을 원하는 값으로 설정하고 Y 위치를 y 값의 최소값으로 설정할 수 있습니다. 이 권리를 얻는 것은 조금 까다 롭습니다. Annotation 축과 IsSizeAlwaysRelative 축을 포함해야합니다.

  • 아니면 Pre 코드 수 - 또는 PostPaint 이벤트를하고 Graphics.DrawString 또는 TextRenderer.DrawText 당신이 좌표를 얻기 위해 ValueToPixelPosition 축 기능을 사용하여 원하는 텍스트입니다. 이것은 실제로 가장 쉬운 방법 일 수 있습니다 ..

+0

나는 마침내이 문제를 재검토하려고합니다. 나는 커스텀 라벨을 찾으러 갔다. 제안 해 주셔서 감사합니다! – Karl

0

당신은 custom labels (example here)이 작업을 수행 할 수 있어야하지만, 일반 라벨 (example here)을 숨기기 위해 바이올린을 켜는 몇 가지 추가 작업을 수행해야 할 수도 있습니다.

관련 문제