# Copyright (c) 2025-2026 Gigasoft, Inc. All rights reserved. === ProEssentials Mixing (knowledge rev 4) Plot Methods & Pego X-Axis === MIXING PLOT METHODS: ProEssentials can display different plotting methods on the same chart by assigning different methods to different subsets. Primary method: PePlot.Method = GraphPlottingMethod.Line (applies to all) Per-subset override: PePlot.Methods[subsetIndex] = GraphPlottingMethods.Bar RIGHT Y-AXIS VIA METHODS[] (key feature): Add OnRightAxis (value 1000) to any plotting method enum to place that subset on the right Y axis with its own independent scale: PePlot.Methods[0] = GraphPlottingMethods.Bar; // left Y PePlot.Methods[1] = GraphPlottingMethods.Line + (int)GraphPlottingMethods.OnRightAxis; // right Y NOTE: A (int) cast is required when adding enum values together in C#. For Pesgo: SGraphPlottingMethods adds OnRightTopAxis(2000), OnTopAxis(3000). Query: pe_query.py enum "GraphPlottingMethods" Query: pe_query.py enum "SGraphPlottingMethods" IMPORTANT -- Methods[] is NOT WorkingAxis-dependent: PePlot.Methods[] is a global per-subset array. It applies regardless of WorkingAxis. Do NOT set WorkingAxis expecting it to affect Methods[]. Contrast: PePlot.Method (singular) IS WorkingAxis-dependent and sets the method for all subsets on the current axis. Common mix: Lines for trends + Bars for volume on same chart. With multi-axis, each axis group can have its own plotting method. Methods[] enum also includes multi-subset types (HighLowArea, BoxPlot, OpenHighLowClose, etc.) -- see pe-specificplotmode knowledge file. COMPARISONSUBSETS + METHODII (splitting subsets into two plotting styles): ComparisonSubsets = N --> last N subsets render via MethodII instead of Method. RYAxisComparisonSubsets = N --> last N subsets on right Y axis via MethodII. TXAxisComparisonSubsets = N --> last N subsets on top X axis (Pesgo only). MethodII default = Line (value 0). All three are WorkingAxis-dependent. Query: pe_query.py props "Method,Methods,MethodII,ComparisonSubsets" DO NOT MIX THE TWO APPROACHES: Methods[] + OnRightAxis and ComparisonSubsets/RYAxisComparisonSubsets + MethodII are two independent mechanisms for the same goal. Mixing them on the same chart produces unpredictable results. Choose one approach and use it exclusively. When using Methods[], zero ComparisonSubsets and RYAxisComparisonSubsets on every WorkingAxis pass to ensure they never interact with Methods[]. RULES: - Not all method combinations work visually (e.g., stacked + non-stacked) - Bar methods need compatible X-axis positioning PEGO X-AXIS CONFIGURATION: Pego's X-axis is categorical/sequential. No X data array. Point labels: PeString.PointLabels[i] = "Category Name" Date/Time on Pego X-axis: Set DateTimeMode = true on PeData Set DeltaX = time interval in serial days (1.0 = daily, 1/24 = hourly) Starting date: controlled by the StartTime-related properties For variable intervals: use DeltasX[] array Point vs. Subset orientation: Default: each Subset is a series, Points are categories With SubsetByPoint = false: orientation is transposed CUSTOM AXIS SCALES (for both Pego and Pesgo): ManualScaleControl enum: None (auto), Min, Max, MinMax Set ManualScaleControlY = ManualScaleControl.MinMax Then set ManualMinY and ManualMaxY. Same pattern for X axis (Pesgo) and RY axis (Pego, Pesgo, Pepso). With multi-axis: set WorkingAxis first. Custom grid numbers: use PeCustomGridNumber event for full format control. Query: pe_query.py recipe "custom-grid"