Example 032: Graph showing 16 Axes

PegoGraph Objectintermediate

16 Axes

Preview

ProEssentials Pego Graph Object - Graph showing 16 Axes
Click to enlarge

Source Code

Form2.cs
1//! Also added is AxisBackColor, AxisForeColor, and AxisBorderType.
2//! Select Graph menu from within the View menu to maximize this example.
3
4// Disable Banding //
5Pego1.PeGrid.GridBands = false;
6
7Pego1.PeConfigure.PrepareImages = true;
8
9// Pass Data //
10Pego1.PeData.Subsets = 32;
11Pego1.PeData.Points = 100;
12
13float fRnd;
14int s;
15int p;
16for (s=0; s < 32; s++)
17{
18 fRnd = (float) (9.0F * Rand_Num.NextDouble()) + 2.0F;
19
20 // pass 100 points of subset data //
21 for (p = 0; p < 100; p++)
22 Pego1.PeData.Y[s, p] = (float) (10.0F + (0.6F * fRnd * System.Math.Sin(fRnd * p)));
23
24 // set subsetlabel //
25 Pego1.PeString.SubsetLabels[s] = "Sin" + String.Format(".#",fRnd);
26}
27
28// Set various axis parameters //
29int axis;
30for (axis = 0; axis < 16; axis++)
31{
32 Pego1.PeGrid.WorkingAxis = axis;
33 Pego1.PeGrid.Option.ShowYAxis = ShowAxis.GridNumbers;
34
35 // set y axis label //
36 p = axis + 1;
37 Pego1.PeString.YAxisLabel = "Axis" + p.ToString();
38
39 Pego1.PeGrid.Configure.ManualScaleControlY = ManualScaleControl.MinMax;
40 Pego1.PeGrid.Configure.ManualMinY = 0.0F;
41 Pego1.PeGrid.Configure.ManualMaxY = 20.0F;
42
43 Pego1.PePlot.Method= GraphPlottingMethod.Line;
44 Pego1.PePlot.ComparisonSubsets = 1;
45 Pego1.PePlot.MethodII = GraphPlottingMethodII.Step;
46}
47
48// Set various subset parameters //
49Color[] dwArray = new Color[2];
50dwArray[0] = Color.FromArgb(79, 0, 32, 198);
51dwArray[1] = Color.FromArgb(199, 225, 0, 0);
52
53int nColorIndex;
54nColorIndex = 0;
55for (s = 0; s < 32; s++)
56{
57 Pego1.PePlot.SubsetLineTypes[s] = LineType.ThinSolid;
58 Pego1.PeColor.SubsetColors[s] = dwArray[nColorIndex];
59 nColorIndex = nColorIndex + 1;
60 if (nColorIndex > 1) nColorIndex = 0;
61}
62
63// Set various point parameters //
64for (p = 0; p < 100; p++)
65 Pego1.PeString.PointLabels[p] = "Data#" + String.Format("#", p+1);
66
67Pego1.PeGrid.ForceVerticalPoints=ForceVerticalPoints.Horizontal;
68
69// Various other features //
70Pego1.PeFont.Fixed = true;
71Pego1.PeFont.FontSize = FontSize.Small;
72Pego1.PeFont.SizeGlobalCntl = 0.9F;
73
74Pego1.PeColor.BitmapGradientMode = true;
75Pego1.PeColor.QuickStyle = QuickStyle.LightNoBorder;
76
77Pego1.PeLegend.SimplePoint = true;
78Pego1.PeLegend.SimpleLine = true;
79Pego1.PeLegend.Style = LegendStyle.OneLineInsideOverlap;
80
81// Split up subsets among different axes //
82Pego1.PeGrid.MultiAxesSubsets[0] = 2;
83Pego1.PeGrid.MultiAxesSubsets[1] = 2;
84Pego1.PeGrid.MultiAxesSubsets[2] = 2;
85Pego1.PeGrid.MultiAxesSubsets[3] = 2;
86Pego1.PeGrid.MultiAxesSubsets[4] = 2;
87Pego1.PeGrid.MultiAxesSubsets[5] = 2;
88Pego1.PeGrid.MultiAxesSubsets[6] = 2;
89Pego1.PeGrid.MultiAxesSubsets[7] = 2;
90Pego1.PeGrid.MultiAxesSubsets[8] = 2;
91Pego1.PeGrid.MultiAxesSubsets[9] = 2;
92Pego1.PeGrid.MultiAxesSubsets[10] = 2;
93Pego1.PeGrid.MultiAxesSubsets[11] = 2;
94Pego1.PeGrid.MultiAxesSubsets[12] = 2;
95Pego1.PeGrid.MultiAxesSubsets[13] = 2;
96Pego1.PeGrid.MultiAxesSubsets[14] = 2;
97Pego1.PeGrid.MultiAxesSubsets[15] = 2;
98
99Pego1.PeGrid.Option.MultiAxisStyle = MultiAxisStyle.SeparateAxes;
100Pego1.PeGrid.Option.MultiAxisSeparatorSize = 65;
101Pego1.PeUserInterface.Menu.MultiAxisStyle = MenuControl.Show;
102
103Pego1.PeString.MainTitle = "16 Axes with axis forecolor backcolor mouse control";
104Pego1.PeString.SubTitle = "";
105Pego1.PeUserInterface.Allow.FocalRect = false;
106Pego1.PeUserInterface.Allow.Zooming = AllowZooming.HorzAndVert;
107Pego1.PeUserInterface.Allow.ZoomStyle = ZoomStyle.Ro2Not;
108
109Pego1.PePlot.Allow.Step = true;
110Pego1.PePlot.DataShadows = DataShadows.None;
111
112Pego1.PePlot.Option.GradientBars = 12;
113Pego1.PeString.TextShadows = TextShadows.NoShadows;
114Pego1.PeFont.MainTitle.Bold = true;
115Pego1.PeFont.SubTitle.Bold = true;
116Pego1.PeFont.Label.Bold = true;
117Pego1.PePlot.Option.LineShadows = true;
118Pego1.PeUserInterface.Scrollbar.PointsToGraph = 50;
119
120Pego1.PeColor.GraphForeground = Color.FromArgb(50, 0, 0, 0);
121Pego1.PeGrid.LineControl = GridLineControl.Both;
122Pego1.PeGrid.Style = GridStyle.Dot;
123
124Pego1.PePlot.Option.PointGradientStyle = PlotGradientStyle.VerticalAscentInverse;
125Pego1.PeColor.PointBorderColor = Color.FromArgb(100, 0, 0, 0);
126Pego1.PePlot.Option.LineSymbolThickness = 3;
127Pego1.PePlot.Option.AreaBorder = 1;
128
129// Set various export defaults //
130Pego1.PeSpecial.DpiX = 600;
131Pego1.PeSpecial.DpiY = 600;
132
133// default export setting //
134Pego1.PeUserInterface.Dialog.ExportSizeDef = ExportSizeDef.NoSizeOrPixel;
135Pego1.PeUserInterface.Dialog.ExportTypeDef = ExportTypeDef.Png;
136Pego1.PeUserInterface.Dialog.ExportDestDef = ExportDestDef.Clipboard;
137Pego1.PeUserInterface.Dialog.ExportUnitXDef = "1280";
138Pego1.PeUserInterface.Dialog.ExportUnitYDef = "768";
139Pego1.PeUserInterface.Dialog.ExportImageDpi = 300;
140
141// v9 features
142Pego1.PeUserInterface.Cursor.PromptTracking = true;
143Pego1.PeUserInterface.Cursor.PromptLocation = CursorPromptLocation.ToolTip;
144Pego1.PeUserInterface.Cursor.PromptStyle = CursorPromptStyle.YValue;
145
146Pego1.PeConfigure.RenderEngine = RenderEngine.Direct2D;
147
148Pego1.PeFunction.ReinitializeResetImage();
149Pego1.Invalidate();
150// Optionally call Pego1.Refresh() if you are not seeing changes immediately
151
152 /*
153 private void Pego1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
154{
155 if (Pego1.PeUserInterface.Cursor.ProcessingMouseMove == true)
156 return;
157
158 // If mouse is inside an axis, change it's back color to WHITE //
159 // Determine if mouse is within an axis //
160
161 int a;
162 int nChangedAxisColor = -1;
163
164 // get last mouse location within control //'
165 System.Drawing.Point pt = Pego1.PeUserInterface.Cursor.LastMouseMove;
166
167 for (a = 0; a < 16; a++)
168 {
169 // test to see if this is within axis area //'
170 Pego1.PeGrid.WorkingAxis = a;
171 Rectangle rect = Pego1.PeFunction.GetRectAxis();
172 if (rect.Contains(pt))
173 {
174 if (Pego1.PeColor.AxisBackColor != Color.FromArgb(255, 255, 255, 255))
175 {
176 Pego1.PeColor.AxisBackColor = Color.FromArgb(255, 255, 255, 255);
177 Pego1.PeColor.AxisForeColor = Color.FromArgb(255, 255, 0, 0);
178 nChangedAxisColor = a;
179 }
180 break;
181 }
182 }
183
184 if (nChangedAxisColor != -1)
185 {
186 for (a = 0; a < 16; a++)
187 {
188 if (a != nChangedAxisColor)
189 {
190 Pego1.PeGrid.WorkingAxis = a;
191 Pego1.PeColor.AxisBackColor = Color.FromArgb(0,1,0,0); // Empty color
192 Pego1.PeColor.AxisForeColor = Color.FromArgb(0,1,0,0);
193 }
194 }
195 Pego1.Refresh();
196 }
197 }*/
Tip: Uses property syntax like Pego1.PeData.Y[s, p]Click underlined properties to view documentation