[add] added legend alignment option

This commit is contained in:
2021-02-28 23:46:38 -05:00
parent e6f63edde4
commit 15986f7468
2 changed files with 26 additions and 2 deletions

View File

@@ -19,7 +19,11 @@ col_average=5
col_max=6
col_deviation=7
# legend alignment
legend_align="center"
if(exists("TZ")) tz=TZ*3600
if(exists("LEGEND_ALIGN")) legend_align=LEGEND_ALIGN
# gnuplot does not like spaces in -e so we recreate them here via system call to sed
if(exists("SERVERS")) server_list=system("echo '".SERVERS."' | sed 's|;| |g'")
if(exists("CSV_FILE")) csv_file=CSV_FILE
@@ -46,7 +50,9 @@ set key box lt rgb "#000000"
set key width 1.5
set key height 0.5
set key samplen 0.1
set key center top
if (legend_align eq "left") set key left top
if (legend_align eq "center") set key center top
if (legend_align eq "right") set key right top
## axis
set y2tics # enable second axis
set ytics nomirror # dont show the tics on that side

View File

@@ -5,6 +5,7 @@ Backup Script Version $script_version
usage: SERVER:LABEL [...]
[--file|-f CSV_FILE] [--limit-y|-l Y_MAX] [--time-zone|-t UTC_HOURS]
[--start-date|-S DATE] [--end-date|-E DATE] [--show-hours|-H HOURS]
[--align-legend|-a POSITION]
args: SERVER:LABEL [...]
Space sperated list of servers to plot. Needs to be before any other args.
@@ -34,6 +35,10 @@ Backup Script Version $script_version
--show-hours|-H HOURS
HOURSE defaults to $default_hours and sets the Y Axis starting point HOURS before the end point.
Will be overwritten by -s if declared later.
--align-legend|-a POSITION
POSITION can be left, center or right and aligns the legend of the plot.
Default is $default_align alignment.
example: ${BASH_SOURCE[0]} example.com:example 0.0.0.0:localhost --limit-y 100 --show-hours 5 --end-date "$(date +"%Y-%m-%d %H:%M")" --time-zone $(date +%-:::z)
${BASH_SOURCE[0]} example.com:example 0.0.0.0:localhost -S "$(date --date='yesterday' +"%Y-%m-%d")" -E "$(date +"%Y-%m-%d")" -f data.csv
@@ -56,6 +61,7 @@ default_start_date=$(date --date="1 week ago" -Is)
default_end_date=$(date -Is)
default_hours=24
default_tz=$(date +%-:::z)
default_align=center
# end configuration
##############################
@@ -131,7 +137,8 @@ main()
{
local unknown_args=()
local servers=$(load_server_env)
local csv_file="$default_csv" limit time_zone="$default_tz" start_date end_date hours
local csv_file="$default_csv"
local limit time_zone="$default_tz" start_date end_date hours legend="$default_align"
# if servers passed as args reset list and parse
[[ $# -gt 0 ]] && [[ $1 != -* ]] && servers=""
@@ -205,6 +212,16 @@ main()
shift # past value
fi
;;
--align-legend|-a)
if [[ $2 == -* ]] || [[ -z "$2" ]]; then
echo "log WAR main Invalid legend alignment, using default: $legend"
shift # past argument, no value
else
legend=$2
shift # past argument
shift # past value
fi
;;
--help|-h)
help
exit
@@ -230,6 +247,7 @@ main()
[[ ! -z "$start_date" ]] && plot_env[X_MIN]=$start_date
[[ ! -z "$end_date" ]] && plot_env[X_MAX]=$end_date
[[ ! -z "$hours" ]] && set_relative_X_MIN $hours
[[ ! -z "$legend" ]] && plot_env[LEGEND_ALIGN]=\"$legend\"
[[ ${#unknown_args[@]} -ne 0 ]] && log main WARNING "ignored unknown args: ${unknown_args[@]}"