Example 015: Graph showing use of GraphAnnotations

PegoGraph Objectadvanced

Use of GraphAnnotations

Preview

ProEssentials Pego Graph Object - Graph showing use of GraphAnnotations
Click to enlarge

Source Code

Form2.cs
1// This example builds upon the basic CreateSimpleGraph '000' example chart //
2CreateSimpleGraph(Pego1);
3
4// v9.5
5Pego1.PeUserInterface.Menu.AnnotationControl = true;
6Pego1.PeUserInterface.Menu.ShowAnnotationText = MenuControl.Show;
7Pego1.PeAnnotation.ShowAnnotationText = true;
8
9// simplify chart by reducing subsets //
10Pego1.PeData.Subsets = 2;
11Pego1.PePlot.Method = GraphPlottingMethod.PointsPlusLine;
12Pego1.PePlot.RYAxisComparisonSubsets = 1;
13Pego1.PePlot.MethodII = GraphPlottingMethodII.Line;
14Pego1.PeTable.Show = GraphPlusTable.Graph;
15Pego1.PeFont.FontSize = FontSize.Large;
16
17// Add some various graph annotations //
18Pego1.PeAnnotation.Show = true;
19Pego1.PeFont.GraphAnnotationTextSize = 115;
20
21// Controls default placement of all annotations //
22Pego1.PeAnnotation.InFront = false;
23
24// Give user ability to show or hide annotations //
25Pego1.PeUserInterface.Menu.AnnotationControl = true;
26
27// Place a symbol //
28Pego1.PeAnnotation.Graph.X[0] = 1.5;
29Pego1.PeAnnotation.Graph.Y[0] = 1095;
30Pego1.PeAnnotation.Graph.Type[0] = (int) GraphAnnotationType.SmallDotSolid;
31Pego1.PeAnnotation.Graph.Color[0] = Color.FromArgb(225, 198, 98, 0);
32Pego1.PeAnnotation.Graph.Text[0] = "Dot Gradient Shadow";
33Pego1.PeAnnotation.Graph.GradientStyle[0] = (int) Gigasoft.ProEssentials.Enums.PlotGradientStyle.RadialTopLeft;
34Pego1.PeAnnotation.Graph.Shadow[0] = true;
35Pego1.PeAnnotation.Graph.Bold[0] = false;
36
37// Draw some lines //'
38Pego1.PeAnnotation.Graph.X[1] = 1.5;
39Pego1.PeAnnotation.Graph.Y[1] = 1020;
40Pego1.PeAnnotation.Graph.Type[1] = (int) GraphAnnotationType.ThinSolidLine;
41Pego1.PeAnnotation.Graph.Color[1] = Color.FromArgb(255, 0, 198, 198);
42Pego1.PeAnnotation.Graph.Text[1] = "Start";
43Pego1.PeAnnotation.Graph.Bold[1] = false;
44
45Pego1.PeAnnotation.Graph.X[2] = 2.5;
46Pego1.PeAnnotation.Graph.Y[2] = 1120;
47Pego1.PeAnnotation.Graph.Type[2] = (int) GraphAnnotationType.LineContinue;
48Pego1.PeAnnotation.Graph.Color[2] = Color.Black;
49Pego1.PeAnnotation.Graph.Text[2] = "";
50
51Pego1.PeAnnotation.Graph.X[3] = 3.5;
52Pego1.PeAnnotation.Graph.Y[3] = 1020;
53Pego1.PeAnnotation.Graph.Type[3] = (int) GraphAnnotationType.LineContinue;
54Pego1.PeAnnotation.Graph.Color[3] = Color.FromArgb(255, 0, 0, 198);
55Pego1.PeAnnotation.Graph.Text[3] = "End";
56Pego1.PeAnnotation.Graph.Bold[3] = false;
57
58// How to draw an ellipse, rectangle, or roundrect. //
59Pego1.PeAnnotation.Graph.X[4] = 4.5;
60Pego1.PeAnnotation.Graph.Y[4] = 1120;
61Pego1.PeAnnotation.Graph.Type[4] = (int) GraphAnnotationType.TopLeft;
62Pego1.PeAnnotation.Graph.Color[4] = Color.Black;
63Pego1.PeAnnotation.Graph.Text[4] = "";
64Pego1.PeAnnotation.Graph.InFront[4] = AnnotationInFront.InFront;
65Pego1.PeAnnotation.Graph.Shadow[4] = true;
66
67Pego1.PeAnnotation.Graph.X[5] = 5.5;
68Pego1.PeAnnotation.Graph.Y[5] = 1020;
69Pego1.PeAnnotation.Graph.Type[5] = (int) GraphAnnotationType.BottomRight;
70Pego1.PeAnnotation.Graph.Color[5] = Color.Black;
71Pego1.PeAnnotation.Graph.Text[5] = "";
72Pego1.PeAnnotation.Graph.InFront[5] = AnnotationInFront.InFront;
73Pego1.PeAnnotation.Graph.Shadow[5] = true;
74
75Pego1.PeAnnotation.Graph.X[6] = 5.5;
76Pego1.PeAnnotation.Graph.Y[6] = 1020;
77Pego1.PeAnnotation.Graph.Type[6] = (int) GraphAnnotationType.EllipseFill;
78Pego1.PeAnnotation.Graph.Color[6] = Color.FromArgb(155, 234, 123, 53);
79Pego1.PeAnnotation.Graph.Text[6] = "";
80Pego1.PeAnnotation.Graph.InFront[6] = AnnotationInFront.InFront;
81Pego1.PeAnnotation.Graph.Shadow[6] = true;
82Pego1.PeAnnotation.Graph.GradientStyle[6] = (int)Gigasoft.ProEssentials.Enums.PlotGradientStyle.RadialTopLeft;
83
84// Place a polygon //'
85Pego1.PeAnnotation.Graph.X[7] = 6.5;
86Pego1.PeAnnotation.Graph.Y[7] = 1120;
87Pego1.PeAnnotation.Graph.Type[7] = (int) GraphAnnotationType.StartPoly;
88Pego1.PeAnnotation.Graph.Color[7] = Color.Black;
89Pego1.PeAnnotation.Graph.Text[7] = "";
90
91Pego1.PeAnnotation.Graph.X[8] = 7.5;
92Pego1.PeAnnotation.Graph.Y[8] = 1120;
93Pego1.PeAnnotation.Graph.Type[8] = (int) GraphAnnotationType.AddPolyPoint;
94Pego1.PeAnnotation.Graph.Color[8] = Color.Black;
95Pego1.PeAnnotation.Graph.Text[8] = "";
96
97Pego1.PeAnnotation.Graph.X[9] = 7.5;
98Pego1.PeAnnotation.Graph.Y[9] = 1020;
99Pego1.PeAnnotation.Graph.Type[9] = (int)GraphAnnotationType.EndPolygonHatchCross; //.EndPolygon;
100Pego1.PeAnnotation.Graph.Color[9] = Color.FromArgb(255, 0, 0, 0);
101Pego1.PeAnnotation.Graph.Text[9] = "";
102
103// Place a paragraph of text //'
104Pego1.PeAnnotation.Graph.X[10] = 0;
105Pego1.PeAnnotation.Graph.Y[10] = 0;
106Pego1.PeAnnotation.Graph.Type[10] = (int) GraphAnnotationType.StartText;
107Pego1.PeAnnotation.Graph.Color[10] = Color.Black;
108Pego1.PeAnnotation.Graph.Text[10] = "A line of text." + '\n';
109
110Pego1.PeAnnotation.Graph.X[11] = 0;
111Pego1.PeAnnotation.Graph.Y[11] = 0;
112Pego1.PeAnnotation.Graph.Type[11] = (int) GraphAnnotationType.AddText;
113Pego1.PeAnnotation.Graph.Color[11] = Color.Black;
114Pego1.PeAnnotation.Graph.Text[11] = "Col1 Col2" + '\n';
115
116Pego1.PeAnnotation.Graph.X[12] = 0;
117Pego1.PeAnnotation.Graph.Y[12] = 0;
118Pego1.PeAnnotation.Graph.Type[12] = (int) GraphAnnotationType.AddText;
119Pego1.PeAnnotation.Graph.Color[12] = Color.Black;
120Pego1.PeAnnotation.Graph.Text[12] = "on off" + '\n';
121
122Pego1.PeAnnotation.Graph.X[13] = 7.75;
123Pego1.PeAnnotation.Graph.Y[13] = 1050;
124Pego1.PeAnnotation.Graph.Type[13] = (int) GraphAnnotationType.Paragraph;
125Pego1.PeAnnotation.Graph.Color[13] = Color.FromArgb(255, 88, 88, 88);
126Pego1.PeAnnotation.Graph.Text[13] = "";
127Pego1.PeAnnotation.Graph.Font[13] = "Courier New";
128
129// Draw an Arrow Pointer annotation //
130Pego1.PeAnnotation.Graph.X[14] = 2.5;
131Pego1.PeAnnotation.Graph.Y[14] = 1130;
132Pego1.PeAnnotation.Graph.Type[14] = (int) GraphAnnotationType.PointerArrowMedium;
133Pego1.PeAnnotation.Graph.Color[14] = Color.FromArgb(255, 0, 198, 198);
134Pego1.PeAnnotation.Graph.Text[14] = "Move toward Start";
135Pego1.PeAnnotation.Graph.Shadow[14] = true;
136
137// Draw an Arrow annotation //
138Pego1.PeAnnotation.Graph.X[15] = 1.5;
139Pego1.PeAnnotation.Graph.Y[15] = 1250;
140Pego1.PeAnnotation.Graph.Type[15] = (int) GraphAnnotationType.ThinSolidLine;
141Pego1.PeAnnotation.Graph.Color[15] = Color.FromArgb(128, 128, 200, 198);
142Pego1.PeAnnotation.Graph.Text[15] = "";
143
144Pego1.PeAnnotation.Graph.X[16] = 2.5;
145Pego1.PeAnnotation.Graph.Y[16] = 1290;
146Pego1.PeAnnotation.Graph.Type[16] = (int) GraphAnnotationType.ArrowSolidSmall;
147Pego1.PeAnnotation.Graph.Color[16] = Color.FromArgb(128, 128, 200, 198);
148Pego1.PeAnnotation.Graph.Text[16] = "";
149
150// Place a symbol on right y axis //
151
152// Turn on Bounding Box Text //
153Pego1.PeAnnotation.Graph.Type[17] = (int)GraphAnnotationType.TextBoundingBox;
154Pego1.PeAnnotation.Graph.Color[17] = Color.FromArgb(255, 0, 0, 0);
155
156Pego1.PeAnnotation.Graph.X[18] = 11.5;
157Pego1.PeAnnotation.Graph.Y[18] = 900;
158Pego1.PeAnnotation.Graph.Type[18] = (int) GraphAnnotationType.SmallDotSolid + 1000; // 1000 designates right y axis
159Pego1.PeAnnotation.Graph.Color[18] = Color.FromArgb(255, 200, 200, 0);
160Pego1.PeAnnotation.Graph.Text[18] = "900 Right Axis";
161Pego1.PeAnnotation.Graph.GradientStyle[18] = (int)Gigasoft.ProEssentials.Enums.PlotGradientStyle.RadialTopLeft;
162Pego1.PeAnnotation.Graph.Shadow[18] = true;
163
164// Turn off Bounding Box Text with 0 color //
165Pego1.PeAnnotation.Graph.Type[19] = (int)GraphAnnotationType.TextBoundingBox;
166Pego1.PeAnnotation.Graph.Color[19] = Color.FromArgb(0, 0, 0, 0);
167
168// Draw Angled Text Annotation // This method forms the angle from data units. Text will follow a data line if located on a data line.
169Pego1.PeAnnotation.Graph.X[20] = 1.5;
170Pego1.PeAnnotation.Graph.Y[20] = 1250;
171Pego1.PeAnnotation.Graph.Type[20] = (int) GraphAnnotationType.NullPen;
172Pego1.PeAnnotation.Graph.Color[20] = Color.FromArgb(0, 0, 0, 0);
173Pego1.PeAnnotation.Graph.Text[20] = "";
174
175Pego1.PeAnnotation.Graph.X[21] = 2.5;
176Pego1.PeAnnotation.Graph.Y[21] = 1290;
177Pego1.PeAnnotation.Graph.Type[21] = (int)GraphAnnotationType.AngledTextLeftTop; // v10 new justifications;
178Pego1.PeAnnotation.Graph.Color[21] = Color.FromArgb(255, 88, 88, 88);
179Pego1.PeAnnotation.Graph.Text[21] = "Hello"; // Note, see example 149 for optional method of absolute angled text"
180
181// Bitmap Graph Annotation //
182
183Pego1.PePlot.Bitmaps.WorkingBitmap = 0;
184Pego1.PePlot.Bitmaps.Filename = "tint.png";
185Pego1.PePlot.Bitmaps.Style = ResourceBitmapStyle.LargeCentered;
186Pego1.PePlot.Bitmaps.ColorizeMode = ResourceBitmapColorizeMode.Tint; // When GraphAnnotationType = this Bitmap, color = GraphAnnotationColor
187
188Pego1.PeAnnotation.Graph.Color[22] = Color.FromArgb(255, 215, 0, 215); // Set Color before Type for Bitmaps
189Pego1.PeAnnotation.Graph.X[22] = 3.5;
190Pego1.PeAnnotation.Graph.Y[22] = 1390;
191Pego1.PeAnnotation.Graph.Type[22] = (int)10001; // 10001 plus workingbitmap index
192Pego1.PeAnnotation.Graph.Text[22] = "Bitmap as Symbol";
193
194Pego1.PePlot.Bitmaps.WorkingBitmap = 1;
195Pego1.PePlot.Bitmaps.Filename = "mask.png";
196Pego1.PePlot.Bitmaps.Style = ResourceBitmapStyle.MediumCentered;
197Pego1.PePlot.Bitmaps.ColorizeMode = ResourceBitmapColorizeMode.Mask; // When GraphAnnotationType = this Bitmap, color = GraphAnnotationColor
198
199// Bitmap Graph Annotation //
200Pego1.PeAnnotation.Graph.Color[23] = Color.FromArgb(255, 215, 215, 0); // Set Color before Type for Bitmaps
201Pego1.PeAnnotation.Graph.X[23] = 5.5;
202Pego1.PeAnnotation.Graph.Y[23] = 1390;
203Pego1.PeAnnotation.Graph.Type[23] = (int)10002; // 10001 plus workingbitmap index
204Pego1.PeAnnotation.Graph.Text[23] = "Bitmap as Symbol";
205
206// Note, since the bitmap colors are set for this bitmap index via GraphAnnotations //
207// do not set the cell color
208
209Pego1.PeAnnotation.Table.Working = 0;
210Pego1.PeAnnotation.Table.Rows = 2;
211Pego1.PeAnnotation.Table.Columns = 2;
212Pego1.PeAnnotation.Table.Location = GraphTALocation.InsideTopLeft;
213Pego1.PeAnnotation.Table.Text[0, 0] = "Tint Bitmap";
214Pego1.PeAnnotation.Table.Text[1, 0] = "Mask Bitmap";
215Pego1.PeAnnotation.Table.Text[0, 1] = "";
216Pego1.PeAnnotation.Table.Text[1, 1] = "";
217
218Pego1.PeAnnotation.Table.Type[0, 0] = LegendAnnotationType.NoSymbol;
219Pego1.PeAnnotation.Table.Type[1, 0] = LegendAnnotationType.NoSymbol;
220Pego1.PeAnnotation.Table.Type[0, 1] = (Gigasoft.ProEssentials.Enums.LegendAnnotationType)10001;
221Pego1.PeAnnotation.Table.Type[1, 1] = (Gigasoft.ProEssentials.Enums.LegendAnnotationType)10002;
222
223// Note, Table Annotations of type bitmap must be previsously defined as graph annotation
224// Note, Set Table Annnotations with bitmap types after Graph Annotations with bitmap types
225
226Pego1.PeAnnotation.Table.Border = TABorder.SingleLine;
227Pego1.PeAnnotation.Table.TextSize = 125;
228Pego1.PeAnnotation.Table.Show = true;
229
230Pego1.PeAnnotation.InFront = true;
231Pego1.PeAnnotation.Graph.TextSize = 150;
232Pego1.PeAnnotation.Show = true;
233
234Pego1.PeLegend.AnnotationType[0] = 10001;
235Pego1.PeLegend.AnnotationText[0] = "Tint";
236//Non colorized table or legend annotation bitmaps do not need a color
237
238Pego1.PeLegend.AnnotationType[1] = 10002;
239Pego1.PeLegend.AnnotationText[1] = "Mask";
240
241// Note, LegendAnnotations of type bitmap must be previsously defined as graph annotation
242// Note, Set Legend Annnotations with bitmap types after Graph Annotations with bitmap types
243
244Pego1.PeFont.SizeLegendCntl = 1.3F; // increase the legend font and symbols
245Pego1.PeGrid.Configure.AutoMinMaxPaddingY = 15;
246
247Pego1.PeUserInterface.Dialog.AllowWmfExport = false;
248Pego1.PeUserInterface.Dialog.AllowEmfExport = false;
249
250// Show annotations shadows //
251Pego1.PeAnnotation.Graph.ShowShadows = true;
252
253// Allow user to move ArrowPointer annotation //
254Pego1.PeAnnotation.Graph.Moveable = true;
255Pego1.PeUserInterface.HotSpot.GraphAnnotation = AnnotationHotSpot.GraphOnly;
256
257// Other various properties //
258Pego1.PeColor.BitmapGradientMode = true;
259Pego1.PeColor.QuickStyle = QuickStyle.DarkInset;
260
261// Generally call ReinitializeResetImage at end **'
262Pego1.PeFunction.ReinitializeResetImage();
263Pego1.Invalidate();
264// 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