Project velocity can use logarithmic axis, which is quite useful for spreading out projects, but it uses math.log
|
df_consolidated["log_num_commits"] = df_consolidated["Commit"].apply(lambda x: math.log(x) if x != 0 else 0) |
|
df_consolidated["log_num_contrib"] = df_consolidated["num_unique_contributors"].apply( |
|
lambda x: math.log(x) if x != 0 else 0 |
|
) |
|
df_consolidated["log_prs_issues_actions_weighted"] = df_consolidated["prs_issues_actions_weighted"].apply(math.log) |
However I think that for humans it's easier to reason in terms of decades than it is of...powers of the Euler constant. If I a repo has a number of log10(commit) between 3 and 4 I can immediately tell "oh, that repo has ~thousands of commits", if it's between 1 and 2 I can easily guess "that one instead has only a few dozens", etc...while I have much more difficulties making the same quick guesses with the natural logarithm. A variation is to plot in log10 scale but use the linear values on the axes ticks: 1, 10, 100, 1000, etc..., which makes things even easier to read.
Project velocity can use logarithmic axis, which is quite useful for spreading out projects, but it uses
math.log8Knot/8Knot/pages/chaoss/visualizations/project_velocity.py
Lines 358 to 361 in abf4cc3
8Knot/8Knot/pages/chaoss/visualizations/project_velocity.py
Line 376 in abf4cc3