Mindless Inflexibility
One of the capabilities of an application I’ve been working on for two years now is the generation of graphs as PDFs. The UI allows the user to choose a type of graph, select several parameters, specify which axes they go on, and set a number of options. We are using JFreeChart and JasperReports to generate the graphs. I was designing a new type of graph for the next version of the application based on the standard open-high-low-close (OHLC) chart used for financial reporting. I have no need to show an open or close value, but I need to show the high, low, and average values. I was hoping to create something more like a box plot, and while JFreeChart doesn’t do box plots, it will create candlestick charts. So, I worked with a developer to explore the various options provided for styling the candlestick chart. To make a long story short, the best we could come up with was to use the high and low “wicks” as intended, but set both the open and close variables to the average. That gives us a vertical line from high to low intersected with a horizontal line for the average. I can style the length of the horizontal line, but that’s the extent to which I can customize the display in any useful fashion.
Time and time again, I end up working with these tools that make it really easy to implement what would be relatively difficult and time consuming, but they are hobbled by a seemingly mindless inflexibility. How difficult would it have been to allow the thickness of the vertical stroke to be styled separately form the horizontal stroke? Why not allow a horizontal stroke to be placed at any data point on the vertical line? With just a couple extra options, the tool would be able to support many variations on the basic chart types. It’s as if the creators never imagined that someone might want to do something differently than the way Microsoft Excel does.