Git Product home page Git Product logo

artoonie / rcvis Goto Github PK

View Code? Open in Web Editor NEW
26.0 26.0 7.0 14.76 MB

Easy-to-understand visualizations for Ranked-Choice Voting elections: sankey, bargraphs, and tables. Interactive and print-friendly options available. Supports most common tabulators.

Home Page: https://www.rcvis.com

License: GNU General Public License v3.0

Python 51.75% HTML 10.62% JavaScript 10.27% CSS 26.96% Shell 0.38% Procfile 0.01%
candidate d3js elections electoral-system-visualization hci ranked-choice rcv rcv-election sankey sankey-diagram visualization votes

rcvis's People

Contributors

artoonie avatar dependabot[bot] avatar jcampbell avatar lgtm-migrator avatar reynoldsnlp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

rcvis's Issues

Fix horizontal sankey issues on Firefox and Windows 10

Bug report:

"on my Windows 10 computer with Chrome browser, when I follow any link to a results display, it scrolls down too far and cuts off the top and I have to scroll back up to see the top of the results."
image (6)

"On Firefox, it is a little closer to the top:"
image (7)

Fix the "locking" set of names at the top of the diagram

As you scroll down, the name alignment will get further and further off from their position.
Fix the name positions as you scroll based on which nodes are currently visible. If nodes are invisible, hide their associated names.

screen shot 2019-01-25 at 11 15 12 pm

Changing win-threshold round-by-round

As you scrub back and forth between rounds, it seems like the win threshold should adjust based on the selected round (and the ever increasing number of exhausted ballots (or are we calling them "concluded" ballots these days?)) instead of it just showing the final threshold no matter which round is elected. Does that make sense?

Add win thresholds

For these multi-winner contests, the threshold probably should be displayed in the title

slider on the Bar Graph to only show results up to a certain round

It would look similar to how it is today, except instead of showing the most votes a candidate had, it would show how many votes they had on a certain round (meaning that it would show "0 [Eliminated]" for eliminated candidates, and wouldn't show results higher than Round X when the slider is on X. Thus, by paging through each round, the view can see how the election developed "frame by frame"

Adjust number of decimal places

The vote totals are only displayed to two digits whereas they need to be displayed to four digits (or whatever the local rule calls for).

Optimize nav bar menu link order

maybe reorganize navbar links? group somehow? the order seems kind of random, but I'm not 100% sure the best way to group/prioritize them in relation to each other.. I trust you to figure it out :)

slider on Tabular format which shows the results per-round

Using a similar slider to the Bar graph option, create a new Tabular format which shows the results per-round, rather than the results per-candidate-per-round, so that it's similar to the CCD Round-by-Round results but they wouldn't live on their own page

Add percentages to text wherever number of votes is listed

Done for the graphical representations, not the tabular. If we want it for tabular, can we create another story? (In short, the graphs can be done with a shared JS module, the tabular formats need a shared Python module - just the way I happened to architect it)

Fix bug: first-round values show incorrect values if not all votes were transferred

Delivered.

Old:
old-data

Fixed:
new-data

Notice that this bug led to several issues:

  1. First-round incorrect totals
  2. Incorrect totals for rounds after a winner had overvotes transferred away (C is correctly showing 7.25 votes instead of 8)
  3. Incorrect total in the second-round caused by a combination of (1) and (2)

This was a bug only visible in multi-winner rounds with overflow votes getting redistributed, as visible here: http://rcvis.arminsamii.com/visualize=2019-02-04_22-51-06_summaryjson

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.