add margins also for x axis.

This commit is contained in:
Martin Preuss
2025-12-30 12:57:49 +01:00
parent 42c81e32ce
commit 2a641f7a25

View File

@@ -28,6 +28,7 @@
* ------------------------------------------------------------------------------------------------
*/
static void _addMarginsToAxis(AQDG_GRAPH_AXIS *axis, double percent);
static void _setupTicksForTimeAxis(AQDG_GRAPH_AXIS *axis);
static void _setupTicksForDataAxis(AQDG_GRAPH_AXIS *axis);
static int _readNumFromString(const char **sPtr);
@@ -104,39 +105,14 @@ void AQDG_TimeGraph_SetupTicks(AQDG_GRAPH *g, uint32_t flags, double minY, doubl
/* create ticks for X axis */
axis=AQDG_Graph_GetAxisByIndex(g, AQDG_GRAPH_AXISPOS_BOTTOM);
if (axis) {
_addMarginsToAxis(axis, 2.0);
_setupTicksForTimeAxis(axis);
}
/* create ticks for Y axis */
axis=AQDG_Graph_GetAxisByIndex(g, AQDG_GRAPH_AXISPOS_LEFT);
if (axis) {
double vMax;
double vMin;
double vDiff;
vMin=AQDG_Graph_Axis_GetMinValue(axis);
vMax=AQDG_Graph_Axis_GetMaxValue(axis);
vDiff=vMax-vMin;
DBG_ERROR(NULL, "old vMin=%.2f, vMax=%.2f", vMin, vMax);
if (vDiff==0.0) {
DBG_ERROR(NULL, "min = max = %.2f", vMax);
vDiff=vMax;
if (vDiff==0.0)
vDiff=1.0;
}
if (vDiff>0.0) {
double vDiffBy10;
DBG_ERROR(NULL, "Setting vmin and vmax");
vDiffBy10=vDiff/10.0;
vMin-=vDiffBy10;
vMax+=vDiffBy10;
DBG_ERROR(NULL, "new vMin=%.2f, vMax=%.2f", vMin, vMax);
AQDG_Graph_Axis_SetMinValue(axis, vMin);
AQDG_Graph_Axis_SetMaxValue(axis, vMax);
}
_addMarginsToAxis(axis, 10.0);
if (flags & AQDG_TIMEGRAPH_SETUPTICKS_FLAGS_MINY)
AQDG_Graph_Axis_SetMinValue(axis, minY);
if (flags & AQDG_TIMEGRAPH_SETUPTICKS_FLAGS_MAXY)
@@ -147,6 +123,38 @@ void AQDG_TimeGraph_SetupTicks(AQDG_GRAPH *g, uint32_t flags, double minY, doubl
void _addMarginsToAxis(AQDG_GRAPH_AXIS *axis, double percent)
{
double vMax;
double vMin;
double vDiff;
vMin=AQDG_Graph_Axis_GetMinValue(axis);
vMax=AQDG_Graph_Axis_GetMaxValue(axis);
vDiff=vMax-vMin;
DBG_ERROR(NULL, "old vMin=%.2f, vMax=%.2f", vMin, vMax);
if (vDiff==0.0) {
DBG_ERROR(NULL, "min = max = %.2f", vMax);
vDiff=vMax;
if (vDiff==0.0)
vDiff=1.0;
}
if (vDiff>0.0) {
double vDiffForPercent;
DBG_ERROR(NULL, "Setting vmin and vmax");
vDiffForPercent=vDiff*(percent/100.0);
vMin-=vDiffForPercent;
vMax+=vDiffForPercent;
DBG_ERROR(NULL, "new vMin=%.2f, vMax=%.2f", vMin, vMax);
AQDG_Graph_Axis_SetMinValue(axis, vMin);
AQDG_Graph_Axis_SetMaxValue(axis, vMax);
}
}
void _setupTicksForTimeAxis(AQDG_GRAPH_AXIS *axis)
{
#if 0