Example 149: Scientific Graph showing Angled Text Annotation Justifications

PesgoScientific Graph Objectadvanced

Angled Text Annotation Justifications

Preview

ProEssentials Pesgo Scientific Graph Object - Scientific Graph showing Angled Text Annotation Justifications
Click to enlarge

Source Code

Form3.cs
1//! Right button click to show popup menu. //
2//! Double Click to show customization dialog. //
3
4// This example builds upon the basic CreateSimpleSGraph '100' example chart //
5CreateSimpleSGraph(Pesgo1);
6
7Pesgo1.PeString.MainTitle = "Graph Annotation Angled Text with Justification";
8
9// Note, see example 015 for optional method for angled text"
10
11Pesgo1.PeData.Subsets = 2;
12Pesgo1.PeColor.SubsetColors[1] = MainWindow.DemoColors[2];
13
14Pesgo1.PePlot.Method = SGraphPlottingMethod.Line;
15
16Pesgo1.PeGrid.MultiAxesSubsets[0] = 1; // Separate data in axes to space them out
17Pesgo1.PeGrid.MultiAxesSubsets[1] = 1;
18Pesgo1.PeGrid.Option.MultiAxisStyle = MultiAxisStyle.GroupAllAxes;
19
20Pesgo1.PeGrid.WorkingAxis = 1;
21Pesgo1.PeGrid.Configure.AutoMinMaxPaddingY = 40; // Add extra padding to better handle large vertical text annotations
22Pesgo1.PeGrid.Configure.AutoPadBeyondZeroY = true;
23Pesgo1.PeGrid.WorkingAxis = 0;
24Pesgo1.PeGrid.Configure.AutoMinMaxPaddingY = 40; // Add extra padding to better handle large vertical text annotations
25Pesgo1.PeGrid.Configure.AutoPadBeyondZeroY = true;
26
27Pesgo1.PeAnnotation.Graph.MinSymbolSize = MinimumPointSize.Medium; // fix size of annotation symbols
28Pesgo1.PeAnnotation.Graph.MaxSymbolSize = MinimumPointSize.Medium;
29
30int nGA = 0;
31
32// Draw Angled Text Annotation // First define a type NullPen, with Text including JustificationCode
33Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 10];
34Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 10];
35Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NullPen;
36Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(0, 0, 0, 0);
37Pesgo1.PeAnnotation.Graph.Text[nGA] = "|L";
38nGA++;
39
40// Draw Angled Text Annotation //
41Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 10];
42Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 10];
43Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NoSymbol; // .NoSymbol enables text to be hot spot
44Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
45Pesgo1.PeAnnotation.Graph.Text[nGA] = "|a-850|Left Top -85";
46Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.GraphOnly;
47nGA++;
48
49// Draw Small Dot // Add a symbol as above we used NoSymbol to allow text to be hot spot
50Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 10];
51Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 10];
52Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.SmallDotSolid;
53Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
54Pesgo1.PeAnnotation.Graph.Text[nGA] = "";
55Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.NoHotSpot;
56nGA++;
57
58// Draw Angled Text Annotation // First define a type NullPen, with Text including JustificationCode
59Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 40];
60Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 40];
61Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NullPen;
62Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(0, 0, 0, 0);
63Pesgo1.PeAnnotation.Graph.Text[nGA] = "|l";
64nGA++;
65
66// Draw Angled Text Annotation //
67Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 40];
68Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 40];
69Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NoSymbol; // .NoSymbol enables text to be hot spot
70Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
71Pesgo1.PeAnnotation.Graph.Text[nGA] = "|a450|Left Bottom 45";
72Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.GraphOnly;
73nGA++;
74
75// Draw Small Dot // Add a symbol as above we used NoSymbol to allow text to be hot spot
76Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 40];
77Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 40];
78Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.SmallDotSolid;
79Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
80Pesgo1.PeAnnotation.Graph.Text[nGA] = "";
81Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.NoHotSpot;
82nGA++;
83
84// Draw Angled Text Annotation //
85Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 70];
86Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 70];
87Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NullPen;
88Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(0, 0, 0, 0);
89Pesgo1.PeAnnotation.Graph.Text[nGA] = "|r";
90nGA++;
91
92// Draw Angled Text Annotation //
93Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 70];
94Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 70];
95Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NoSymbol; // .NoSymbol enables text to be hot spot
96Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
97Pesgo1.PeAnnotation.Graph.Text[nGA] = "|a-550|Right Bottom -55";
98Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.GraphOnly;
99nGA++;
100
101// Draw Small Dot // Add a symbol as above we used NoSymbol to allow text to be hot spot
102Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 70];
103Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 70];
104Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.SmallDotSolid;
105Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
106Pesgo1.PeAnnotation.Graph.Text[nGA] = "";
107Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.NoHotSpot;
108nGA++;
109
110// Draw Angled Text Annotation //
111Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 100];
112Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 100];
113Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NullPen;
114Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(0, 0, 0, 0);
115Pesgo1.PeAnnotation.Graph.Text[nGA] = "|R";
116nGA++;
117
118// Draw Angled Text Annotation //
119Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 100];
120Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 100];
121Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NoSymbol; // .NoSymbol enables text to be hot spot
122Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
123Pesgo1.PeAnnotation.Graph.Underline[nGA] = true; // add Underline
124Pesgo1.PeAnnotation.Graph.Text[nGA] = "|a-450|Right Top -45";
125Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.GraphOnly;
126nGA++;
127
128// Draw Small Dot // Add a symbol as above we used NoSymbol to allow text to be hot spot
129Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[0, 100];
130Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[0, 100];
131Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.SmallDotSolid;
132Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
133Pesgo1.PeAnnotation.Graph.Text[nGA] = "";
134Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.NoHotSpot;
135nGA++;
136
137// Draw Angled Text Annotation //
138Pesgo1.PeAnnotation.Graph.Axis[nGA] = 1; // Note, we also set GraphAnnotationAxis as these annotations located on second axis
139Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[1, 15];
140Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[1, 15];
141Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NullPen;
142Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(0, 0, 0, 0);
143Pesgo1.PeAnnotation.Graph.Text[nGA] = "|c";
144nGA++;
145
146// Turn on Bounding Box Text //
147Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.TextBoundingBox;
148Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 100, 0);
149nGA++;
150
151// Draw Angled Text Annotation //
152Pesgo1.PeAnnotation.Graph.Axis[nGA] = 1;
153Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[1, 15];
154Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[1, 15];
155Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NoSymbol; // .NoSymbol enables text to be hot spot
156Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
157Pesgo1.PeAnnotation.Graph.Text[nGA] = "|a050|Centered Bottom 05";
158Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.GraphOnly;
159nGA++;
160
161// Turn off Bounding Box Text //
162Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.TextBoundingBox;
163Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(0, 0, 0, 0); // 0 Color turns off box
164nGA++;
165
166// Draw Small Dot // Add a symbol as above we used NoSymbol to allow text to be hot spot
167Pesgo1.PeAnnotation.Graph.Axis[nGA] = 1;
168Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[1, 15];
169Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[1, 15];
170Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.SmallDotSolid;
171Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
172Pesgo1.PeAnnotation.Graph.Text[nGA] = "";
173Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.NoHotSpot;
174nGA++;
175
176// Draw Angled Text Annotation //
177Pesgo1.PeAnnotation.Graph.Axis[nGA] = 1;
178Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[1, 45];
179Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[1, 45];
180Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NullPen;
181Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(0, 0, 0, 0);
182Pesgo1.PeAnnotation.Graph.Text[nGA] = "|C";
183Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.GraphOnly;
184
185nGA++;
186
187// Draw Angled Text Annotation //
188Pesgo1.PeAnnotation.Graph.Axis[nGA] = 1;
189Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[1, 45];
190Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[1, 45];
191Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.NoSymbol; // .NoSymbol enables text to be hot spot
192Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
193Pesgo1.PeAnnotation.Graph.Text[nGA] = "|a450|Centered Top 45";
194Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.GraphOnly;
195nGA++;
196
197// Draw Small Dot // Add a symbol as above we used NoSymbol to allow text to be hot spot
198Pesgo1.PeAnnotation.Graph.Axis[nGA] = 1;
199Pesgo1.PeAnnotation.Graph.X[nGA] = Pesgo1.PeData.X[1, 45];
200Pesgo1.PeAnnotation.Graph.Y[nGA] = Pesgo1.PeData.Y[1, 45];
201Pesgo1.PeAnnotation.Graph.Type[nGA] = (int)GraphAnnotationType.SmallDotSolid;
202Pesgo1.PeAnnotation.Graph.Color[nGA] = Color.FromArgb(255, 0, 255, 255);
203Pesgo1.PeAnnotation.Graph.Text[nGA] = "";
204Pesgo1.PeAnnotation.Graph.HotSpot[nGA] = AnnotationHotSpot.NoHotSpot;
205nGA++;
206
207Pesgo1.PeFont.GraphAnnotationTextSize = 110;
208Pesgo1.PeUserInterface.HotSpot.GraphAnnotation = AnnotationHotSpot.GraphOnly;
209Pesgo1.PeAnnotation.InFront = true;
210
211Pesgo1.PeUserInterface.Menu.AnnotationControl = true;
212Pesgo1.PeUserInterface.Menu.ShowAnnotationText = MenuControl.Show;
213Pesgo1.PeAnnotation.ShowAnnotationText = true;
214Pesgo1.PeAnnotation.Show = true;
215
216Pesgo1.PeColor.BitmapGradientMode = true;
217Pesgo1.PeColor.QuickStyle = QuickStyle.DarkNoBorder;
218Pesgo1.PeLegend.Style = LegendStyle.OneLineLeftOfAxis;
219
220// Generally call ReinitializeResetImage at end **'
221Pesgo1.PeFunction.ReinitializeResetImage();
222Pesgo1.Invalidate();
223// Optionally call Pego1.Refresh() if you are not seeing changes immediately
Tip: Uses property syntax like Pego1.PeData.Y[s, p]Click underlined properties to view documentation