Why create a table when you can create a graph!
Exactly. So many GUIs, both Thick and web-based, use tables to represent data. Much like looking at a spreadsheet. Very hard for an end user or analyst to detect patterns, trends, anomalies from looking at rows and columns on a spreadsheet. People are visual. Writing was introduced around 2600 B.C. https://en.wikipedia.org/wiki/History_of_writing. Humans are visual creatures. Most of us process information based on what we see. 65 percent of us are visual learners, according to the Social Science Research Network. https://www.forbes.com/sites/tjmccue/2013/01/08/what-is-an-infographic-and-ways-to-make-it-go-viral/#47ac58127272
Data is king. We all want data and want to be able to analyze what we are collecting. For many years, I have created graphical user interfaces for end-user operators and data analysts. Overwhelmingly these users ask for visuals to represent their data and to provide any alert type information. Even providing InfoGraphics to represent the data with both stats and graphs is very powerful.
D3 is very forgiving with the format of the data you provide. But I do my best to format the data set the way the D3 visuals request it via their examples. It is not that difficult once you get the hang of it and understand what the data format represents and how the D3 widget reads it and displays it. The cool part is that these D3 visuals are interactive. If you mouse-over a map, you can create events to highlight the state or county and provide detailed information by means of a balloon or other info panel. But this is just the basics. You can update your D3 visuals as data is received via asynchronous web sockets or simple pulling of data from the server side. I prefer serving the data from the server side to the clients via web sockets. This provides for a much richer and cleaner user experience.
Wisdom is the application of knowledge. Ok, so I can write about D3, but have I ever used it and deployed an application to the users? Well, Yes. Here are some of the applications I created using the D3 library:
- Spectrum Analyzer - providing sample data via Web Sockets.
- Map - Interactive Mercator map to replace deprecated Google Earth Plugin. Plot and edit Waypoints with meta info per waypoint. Redraw on map with pan and zoom.
- Force-directed graph - show data entity relationships. Helps to find info visually that is missed or that should be targeted.
- Series graphs showing many series on a graph to depict pattern of life and trend analysis.