2013-04-18 4 views

답변

0

여러 BoxSeries, 여기에 예를 들어 같은 것을 가질 수 있습니다 http://www.teechart.net/support/viewtopic.php?f=3&t=13048&hilit=boxplot

그것은 델파이 예제하지만 액티브 X에서 매우 다른 안된다.


업데이트 : 귀하의 의견에서

, 당신이 다른 X 위치에있는, 그리고 아마도 그룹에서 일부 상자를 갖고 싶어 이해합니다. 여기 당신이 동일한을 달성하기 위해 포지션 놀 수있는 방법의 간단한 예는 다음과 같습니다

Dim nSeries, groupSize As Integer 
Private Sub Form_Load() 
    Dim i, aIndex, sIndex, lIndex, tmpX As Integer 

    TeeCommander1.ChartLink = TChart1.ChartLink 
    'TChart1.Header.Text.Text = TChart1.Version 

    TChart1.Aspect.View3D = False 
    TChart1.Panel.MarginTop = 7 
    TChart1.Header.Visible = False 
    TChart1.Axis.Bottom.Ticks.Visible = False 
    TChart1.Axis.Bottom.MinorTicks.Visible = False 

    nSeries = 8 
    groupSize = 2 

    aIndex = TChart1.Tools.Add(tcAnnotate) 
    TChart1.Tools.Items(aIndex).asAnnotation.Text = "group 1" 

    tmpX = 0 
    For i = 0 To nSeries - 1 
    sIndex = TChart1.AddSeries(scBox) 
    TChart1.series(sIndex).FillSampleValues 
    TChart1.series(sIndex).asBoxPlot.Position = tmpX 

    If (i + 1) Mod groupSize Then 
     tmpX = tmpX + 1 
    Else 
     If i + 1 < nSeries - 1 Then 
     lIndex = TChart1.Tools.Add(tcColorLine) 
     TChart1.Tools.Items(lIndex).asColorLine.Axis = TChart1.Axis.Bottom 
     TChart1.Tools.Items(lIndex).asColorLine.Value = tmpX + 1 
     tmpX = tmpX + 2 

     aIndex = TChart1.Tools.Add(tcAnnotate) 
     TChart1.Tools.Items(aIndex).asAnnotation.Text = "group " + Str$(((i + 1)/groupSize) + 1) 
     End If 
    End If 
    Next i 

    TChart1.Environment.InternalRepaint 
End Sub 

Private Sub TChart1_OnAfterDraw() 
    Dim tmpX As Integer 
    For i = 0 To TChart1.Tools.Count - 1 
    If TChart1.Tools.Items(i).ToolType = tcAnnotate Then 
     With TChart1.Tools.Items(i).asAnnotation 
     If i = TChart1.Tools.Count - 1 Then 
      tmpX = TChart1.GetChartRect.Right 
     Else 
      tmpX = TChart1.Axis.Bottom.CalcXPosValue(TChart1.Tools.Items(i + 1).asColorLine.Value) 
     End If 

     If i = 0 Then 
      tmpX = TChart1.GetChartRect.Left + (tmpX - TChart1.GetChartRect.Left)/2 
     Else 
      tmpX = TChart1.Axis.Bottom.CalcXPosValue(TChart1.Tools.Items(i - 1).asColorLine.Value) + (tmpX - TChart1.Axis.Bottom.CalcXPosValue(TChart1.Tools.Items(i - 1).asColorLine.Value))/2 
     End If 

     .Left = tmpX - .Width/2 
     End With 
    End If 
    Next i 
End Sub 

Private Sub TChart1_OnGetAxisLabel(ByVal Axis As Long, ByVal SeriesIndex As Long, ByVal ValueIndex As Long, LabelText As String) 
    If Axis = 3 Then 
    LabelText = " " 
    End If 
End Sub 

enter image description here

+0

안녕, 난 찾고 있어요 방법 - 투 - 음모 - 다중 박스 plots- [같은 에서 - 하나 - 음모] (http://stackoverflow.com/questions/12427887/how-to-plot-multiple-box-plots-in-one-plot) –

+0

당신은 언급 했나요? BoxSeries를 여러 개 추가해야합니다. 물론 각각의 가치도 있습니다. – Yeray

+0

그래,이 작업을 통해 여러 개의 X 위치에 상자 그림을 추가 할 수 있습니다. 무엇을 찾고있는 것은 X 축의 단일 위치에 상자 플롯 사이드 사이드 그릴을 그리는 것과 비슷한 막대 차트와 나란히 표시 할 수 있습니다 여러 시리즈. –