This is a minor update to VoteKit that includes some new election analysis tools, some refactored visualization code for bar plots, and a minor tweak to how scores are computed from ranked ballots to allow for different averaging conventions for ties.
Added
- added support for three types of averaging conventions within
score_profile_from_rankings
: average,
low, and high. - r-representation scores: compute how "satisfied" voters are with a given winners set.
- matrices: create three kinds of matrices based on profiles: boost, mentions, and average distance. Accompanying heatmap code that plots them.
- support for Python 3.12, 3.13
- contributing guidelines and community resources to our docs.
Changed
- changed the default Borda scoring to use low averaging, where tied rankings receive the lowest possible
points - changed the sampling method for
boosted_random_dictator
andrandom_dictator
to more clearly
use the first place votes distribution - changed the structure of
plot_summary_stats
. Is now split into many functions, all called
profile_STAT_plot
ormulti_profile_STAT_plot
, whereSTAT
can befpv
,borda
,mentions
,
andballot_lengths
. Built on top of more generalbar_plot
andmulti_bar_plot
functions. - removed support for Python 3.9.
New Contributors
Full Changelog: v3.0.0...v3.1.0