use log scale

This commit is contained in:
GroovieGermanikus 2023-10-17 18:47:55 +02:00
parent e58514884c
commit 5d5398e265
No known key found for this signature in database
GPG Key ID: 5B6EB831A5CD2015
3 changed files with 46 additions and 11 deletions

21
log_scale.py Normal file
View File

@ -0,0 +1,21 @@
import math
# https://www.geeksforgeeks.org/python-intensity-transformation-operations-on-images/
max = 1.0
c = max/(math.log(1.0 + max))
# def log_scale(x):
# y = c * math.log(1.0 + x, base)
# return y
def invlog_scale(x):
m=10
return (pow(2,x * m)-1)/(pow(2,m)-1)
if __name__=="__main__":
print("c=", c)
x = invlog_scale(.98)
print("x=", x)

View File

@ -2,7 +2,12 @@ import math
from typing import Union, Any
import pg8000.native
import log_scale
# x: 0..1
# out: "80%"
def format_width(x):
return format(100.0 * x, "#.1f") + '%'
def calc_bars(row):
successful_transactions = row['successful_transactions']
@ -11,9 +16,20 @@ def calc_bars(row):
total = processed_transactions + banking_stage_errors
if total > 0:
row['hide_bar'] = False
row['bar_success'] = format(100.0 * successful_transactions / total, '#.1f') + '%'
row['bar_txerror'] = format(100.0 * (processed_transactions - successful_transactions) / total, '#.1f') + '%'
row['bar_bankingerror'] = format(100.0 * banking_stage_errors / total, '#.1f') + '%'
a = successful_transactions / total
b = processed_transactions / total
c = (processed_transactions + banking_stage_errors) / total # effectively 1.0
print("a=", a, "b=", b, "c=", c)
la = log_scale.invlog_scale(a)
lb = log_scale.invlog_scale(b)
lc = log_scale.invlog_scale(c)
print("la=", la, "lb=", lb, "lc=", lc)
row['bar_success'] = format_width(la)
row['bar_txerror'] = format_width(lb - la)
row['bar_bankingerror'] = format_width(lc - lb)
print(row['bar_success'], row['bar_txerror'], row['bar_bankingerror'])
else:
row['hide_bar'] = True

View File

@ -2,7 +2,7 @@
<thead>
<tr>
<th class="text-muted">Slot #</th>
<th class="text-muted">Block content</th>
<th class="text-muted">Block content (log scale)</th>
<th class="text-muted text-end">Tx errors/total</th>
</tr>
</thead>
@ -11,17 +11,15 @@
<tr>
<td><span class="text-primary"> {{ block.slot }} </span></td>
<td>
<div style="width:10em">
<div style="width:20em">
{% if not block.hide_bar %}
<div class="progress">
<div class="progress-bar bg-info" role="progressbar" style="width:{{ block.bar_success }}"></div>
<div class="progress-bar bg-warning" role="progressbar" style="width:{{ block.bar_txerror }}"></div>
<div class="progress-bar bg-danger" role="progressbar" style="width:{{ block.bar_bankingerror }}"></div>
</div>
<div>
{{ block.bar_success }} / {{ block.bar_txerror }} / {{ block.bar_bankingerror }}
<div class="progress-bar bg-info" role="progressbar" style="width:{{ block.bar_success }}">{{ block.bar_success }}</div>
<div class="progress-bar bg-warning" role="progressbar" style="width:{{ block.bar_txerror }}">{{ block.bar_txerror }}</div>
<div class="progress-bar bg-danger" role="progressbar" style="width:{{ block.bar_bankingerror }}">{{ block.bar_bankingerror }}</div>
</div>
<!-- {{ block.bar_success }} / {{ block.bar_txerror }} / {{ block.bar_bankingerror }} -->
{% else %}
<div class="progress">
<div class="progress-bar" role="progressbar" style="width: 0%"></div>