I have five different software products (let's call them A, B, C, D, and E), each with several different versions. Each version of one product is compatible with at least one (and usually several) version(s) of every other product. These version numbers are independent. For example, A 1.2 isn't necessarily compatible with B 1.2. I cannot change this numbering scheme. Another interesting feature of the compatibility is that each product is always compatible with a continuous range of versions. For example, if C has versions 2.1, 2.2, 2.3, and 2.4, no other product will ever be compatible with only 2.1 and 2.4; they will always be compatible with everything between two versions.
Here's an example of the sort of data that describes the compatibility:
A 1.1 - Compatible with B 6.1 - 6.3. Compatible with C 2.2 - 2.3. Compatible with D 1.4 - 1.5. Compatible with E 1.3 - 1.5.
I want to create a visualization to represent this compatibility. The most important features of this visualization are that it should, ideally, fit on a single page (maybe it would have to be a big page) and be optimized for answering the question "I have this version of product X. Which versions of the other products can I use?"
Here's some options I've considered:
A "compatibility matrix". Each row would represent every version of each 5 products (it would be quite a lot of rows). Each column would just represent a product. Each cell would then contain a range, indicating the versions of the column product that are compatible with the version of product on the current row. The problem with this is that it would be very long and there would be lots of duplicated information (it's not taking advantage of the fact that all compatibility is reciprocated). There's also wasted space from rows for product X version Y.Z and columns for product X (there's no need to communicate which versions of product X are compatible with themselves as that makes no sense).
Another option I considered is a "compatibility bar graph" something like the following:
In this instance, you would just draw a horizontal line at some point and the boxes intersected by that line would describe a set of compatible versions of all products. I think this would be very difficult to create because I'd need to figure out how tall each box will need to be and make sure there's enough space to accommodate all the other compatible versions of the other products and make sure all the overlapping is correct. I also don't even know if it would work - maybe there's some instance where it wouldn't be able to accurately represent some valid combination (but I haven't discovered such a case yet).
Finally, I also considered something kind of like a "compatibility map". It would look like this:
As you can probably tell, this seems like kind of a nightmare to create. I would want to lay it out to avoid crossing any lines, but I'm not even sure that's feasible. Also it would just be horrendously busy because there would be so many lines and so many points (one point for each version of each product).
With that in mind, I'm wondering if there is any option I haven't considered for representing something like this. Thanks for any suggestions!