Enumerations

All enumerations are scoped within AZPlottingClass and use C++11 enum class for type safety.

ScaleType

enum class ScaleType { Linear, Logarithmic, SymLog };

Defines the mathematical transformation applied to axis values.

ValueDescription
Linear Standard linear scale. No transformation applied.
Logarithmic Base-10 logarithmic scale. Only positive values are displayed; negative and zero values are clamped to a small positive threshold.
SymLog Symmetric logarithmic scale. Handles negative values by applying sign(x) * log10(1 + |x|/threshold). The region around zero uses linear scaling controlled by linearThreshold and linearWidth.
SymLog for TEM Data
SymLog is particularly useful for EM data that may have both positive and negative values (e.g., phase-resolved measurements) while still spanning multiple orders of magnitude.

LineStyle

enum class LineStyle { Solid, Dashed, Dotted, DashDot, None };

Defines the stroke pattern for line series.

ValuePattern
Solid Continuous line
Dashed Long dashes
Dotted Dots
DashDot Alternating dash-dot
None No line (markers only if combined with scatter)

MarkerStyle

enum class MarkerStyle { None, Circle, Square, Diamond, Triangle, Cross, Plus, Star };

Defines the shape of data point markers.

ValueShape
NoneNo markers (line only)
CircleFilled circle
SquareFilled square
DiamondFilled diamond
TriangleFilled triangle
CrossX mark
PlusPlus sign +
StarStar shape

TimeUnit

enum class TimeUnit { Seconds, Milliseconds, Microseconds, Auto };

Used with setXAxisTimeFormat() to format the X-axis as a time scale.

ValueTick Format
SecondsValues displayed as seconds (s)
MillisecondsValues displayed as milliseconds (ms)
MicrosecondsValues displayed as microseconds (μs)
AutoAutomatically selects unit based on range

Axis

enum class Axis { X, Y, Y2, All };

Used with setAxisTickStyle() to target specific axes.

ValueDescription
XBottom X-axis
YLeft Y-axis (primary)
Y2Right Y-axis (secondary)
AllApply to all axes

Usage Example

// Using scoped enums
plot->setXAxisScale(AZPlottingClass::ScaleType::Logarithmic);
plot->setYAxisScale(AZPlottingClass::ScaleType::SymLog);

// Line with markers
plot->addLineMarkerSeries(x, y, "Data",
    Qt::blue,
    AZPlottingClass::LineStyle::Solid,
    AZPlottingClass::MarkerStyle::Circle,
    1.5,  // lineWidth
    6.0   // markerSize
);

// Model line (dashed, no markers)
plot->addDataSeries(x, model, "Model",
    Qt::red,
    AZPlottingClass::LineStyle::Dashed,
    1.0
);