I would like your advice and recommendations for a non-profit that is trying to turn a large CSV file into meaningful information.

I am part of a non-profit that would like to turn a 23,000 row x 23 column CSV file into charts and graphs. The CSV file is published by the Georgia Bureau of Investigation several times per year and is publicly available here: http://state.sor.gbi.ga.gov/SORT_PUBLIC/sor.csv

As you will see, the CSV contains over 23,000 individual records so grouping of those records by county would be necessary. Keeping archive data for trends would be nice but isn't required.

The goal of the solution would be to visualize data for each of Georgia's 159 counties as well as an overall visualization. I envision pie or donut charts representing demographic information like Race, Gender, and other data that the CSV collects. I'd like for each of the 159 counties to have their own report and then an overall report for the state of Georgia as a whole. The solution would need to be embedded on our website. It would not need to track data in real time as I will probably upload a new CSV on a quarterly basis.

My website is running the Wordpress CMS with CiviCRM (PHP 7.3, MySQL 5.7). I have full root access to the site so I'm able to install web apps if needed.

Does anyone have suggestions for accomplishing this? I'm currently looking into GoodData. We are a non-profit so the more affordable the solution, the better. I don't mind installing an open source solution to save money over a SaaS hosted solution.

Thanks for your suggestions. I'd be glad to provide additional information if you need it.


1 Answer 1


Shiny could be an interesting option: it's an R library which lets the programmer generate interactive web pages from an R program.

  • All the R libraries for data manipulation/visualization can be used (e.g. the great ggplot2 library for graphs)
  • The interactive pages are rendered with very little effort required on the programmer side
  • Very flexible, allows quite sophisticated visualizations (see the gallery) and the result looks very professional imho.
  • It requires the Shiny server to run on the site, it can be installed quite easily in my experience. There is a commercial version but the free version doesn't have any important limitation, as far as I can tell.


  • I'm not sure I would recommend this to somebody who doesn't have any experience with R, it could be a quite steep learning curve to learn the language just for using Shiny.
  • It might not scale well with a high amount of traffic, depending on the application and the memory resources.
  • 1
    $\begingroup$ Alternatively, there is also Dash by Plotly if you prefer Python: plotly.com/dash Nowhere near as mature/feature complete as Shiny but a possible alternative. $\endgroup$
    – aranglol
    Jun 22, 2020 at 0:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.