Giter Club home page Giter Club logo

pathways-visualization-tool's People

Contributors

mshukuno avatar petrasovaa avatar wenzeslaus avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

wenzeslaus

pathways-visualization-tool's Issues

Make the list of disposition code groups configurable

Make the list of disposition code groups in each temporal chart configurable, i.e. the config file should contain list of disposition code groups (AP, IR, ...) for the charts which contain "all" groups and the charts which contain the "bad" groups.

Add labels for each category in pie charts

Can the pie charts have the category names as part of the tick mark in addition to the percentage similarly to what the Google Sheets charts have. For small number of categories (like the pathway chart) the current state with only the legend is OK, but for larger number of categories (like the ports of entry chart) it is difficult to match over ten different colors.

This really depends on whether or not plotly/Dash supports that or not.

The "group by" section needs "filter by"

Filtering should be optional, so no filtering by default.

Filter by:

  • Value(s) for any of the basic columns (same choices as for group by)
  • Disposition code groups

We can start with one (or two) filter(s) and one value for the selected column/filter like we have for the Timeline which can be filtered by country (and by disposition code group).

We may want to rethink this and add general/common filters all the way at the beginning and let these influence both the group by, the timeline and partially the country plots too.

Redo the color scheme for all charts

The charts should have better color scheme. The temporal charts have colors too close to each other or not prominent enough. The doughnut chars are likely not color blind friendly. However, with that we also need to consider that brightness may convey importance, but all categories here are of the same importance.

Group by month gives traceback in command line ("CONFIG")

There seems to be empty string being present somewhere in the data and the dashboard does not handle that. This can probably fixed just in the data, but the dashboard should be able to deal with these anyway and perhaps even write somewhere how many records are not shown due to the null value in the given column.

dash_1     | Traceback (most recent call last):
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2309, in __call__
dash_1     |     return self.wsgi_app(environ, start_response)
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2295, in wsgi_app
dash_1     |     response = self.handle_exception(e)
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1741, in handle_exception
dash_1     |     reraise(exc_type, exc_value, tb)
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/flask/_compat.py", line 35, in reraise
dash_1     |     raise value
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2292, in wsgi_app
dash_1     |     response = self.full_dispatch_request()
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1815, in full_dispatch_request
dash_1     |     rv = self.handle_user_exception(e)
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1718, in handle_user_exception
dash_1     |     reraise(exc_type, exc_value, tb)
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/flask/_compat.py", line 35, in reraise
dash_1     |     raise value
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1813, in full_dispatch_request
dash_1     |     rv = self.dispatch_request()
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1799, in dispatch_request
dash_1     |     return self.view_functions[rule.endpoint](**req.view_args)
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/dash/dash.py", line 1151, in dispatch
dash_1     |     response.set_data(self.callback_map[output]['callback'](*args))
dash_1     |   File "/usr/local/lib/python3.6/dist-packages/dash/dash.py", line 1037, in add_context
dash_1     |     output_value = func(*args, **kwargs)
dash_1     |   File "/Pathways/callbacks.py", line 38, in group_by
dash_1     |     pie_one = U.pie_value_generator(column, 'CountPer', count_pie_vals, 'Count')
dash_1     |   File "/Pathways/utils.py", line 78, in pie_value_generator
dash_1     |     result = self.convert_month_label(label_key, value_key, dict_list, name)
dash_1     |   File "/Pathways/utils.py", line 62, in convert_month_label
dash_1     |     month = CONFIG['MONTH'][str(row[label_key])[:-2]]
dash_1     | KeyError: ''

Better label for the "less than" ("other") group in pie charts

The implementation of #1 says "Less than (1%)". There is probably a better way to say it while convening the information that these are all the categories with less then 1% being represented (although together they may make up significant portion of the pie chart.

Use full name of the disposition code group

The full name of the disposition code group should be used instead of the two letter abbreviation in all charts. This is to avoid the need for a table which explains them being linked to each of the charts in reports.

Use words instead of column names in plot titles

Plots/charts now use column names like MON or DISP_CD. Although that is the most precise way of describe what we are showing, we need to make it more readable for people who don't work with the data daily, so we need to change MON to Month, DISP_CD to Disposition Code, DISP (Code) to Disposition Code and COMMODITIES to Commodities.

In case of PATHWAY and LOCATION, just using these would be confusing, so PATHWAY should be "Mode of Transportation (Pathway)" and LOCATION should be "Port of Entry (Location)". We may need to change this later.

In addition to the main issue, the "Count vs Quantity" part should be changed to "Count and Quantity".

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.