ncsu-landscape-dynamics / pathways-visualization-tool Goto Github PK
View Code? Open in Web Editor NEWVisualization tool for pathways data
Visualization tool for pathways data
When commodity is shown in the doughnut chart, items with only few records are hidden. It would be good to put them into one group and label it "Other" to not distort the perception of what is 100%.
Filtering should be optional, so no filtering by default.
Filter by:
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.
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".
When visualizing number of records by group, need to have second visualization of quantity by group.
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.
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.
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: ''
To be clear about what the number means without need to describe it elsewhere.
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.
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.
Now there are three graphs and it is not 100% which one is which.
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.
"(Count)" is part of the title, but having it for the axis is more clear.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.