2012-04-03 5 views
2

Ich mache gerade ein Projekt, bei dem ich den gewünschten Peak gefunden habe. Ich wollte jedoch eher den speziellen Punkt mit einem Etikett umkreisen. Ist es möglich, das in Zedgraph zu tun?Einen bestimmten Punkt im Zedgraphen beschriften und einkreisen

Ich habe ein Code-Schnipsel angehängt, das nur eine Textbeschriftung enthält, und ich wollte mehr tun, damit die Leute den Punkt leichter identifizieren können.

PointPair pt = myCurve.Points[i-1]; 
const double offset = 0.8; 

TextObj text = new TextObj("P", pt.X, pt.Y + offset, 
CoordType.AxisXYScale, AlignH.Left, AlignV.Center); 
text.ZOrder = ZOrder.A_InFront; 
text.FontSpec.Border.IsVisible = false; 
text.FontSpec.Fill.IsVisible = false; 
text.FontSpec.Fill = new Fill(Color.FromArgb(100, Color.White)); 

myPane.GraphObjList.Add(text); 

Jede Hilfe wird geschätzt! Vielen Dank!

Antwort

4

Machen Sie eine LineItem als

LineItem line = new LineItem("Point", new double[] {pt.x}, new double[] {pt.y}, Color.Black, SymbolType.Circle); 
line.Symbol.Size = 20; 
line.Symbol.Fill = new Fill(Color.Transparent); 
myPane.CurveList.Add(line); 

Dies folgt um den Punkt zentriert einen großen leeren Kreis erstellen soll. Natürlich können Sie Farbe und Größe nach Ihren Wünschen anpassen, und bei Bedarf auch den ZOrder. Vielleicht möchten Sie Ihre Legende so anpassen, dass sie diesen Punkt nicht enthält. Alternativ können Sie diese Zeile mit Ihrem Label benennen und in der Legende belassen, um sie zu markieren. Die einzige andere Möglichkeit für ein Label besteht darin, das zu tun, was Sie tun, da ich mir nicht sicher bin, wie Labels direkt mit einer Zeile verknüpft werden können.

Verwandte Themen