Hierachical bipartite graph for a large data set
I'm looking for a way to visualize the association between two data sets. One of these data sets is itself organized in a hierarchy. For example:
Set 1 - Students:
- Anna
- Belinda
- Charles
- Daniel
- Ellen
- Francis
Set 2 - Classes:
- Mathematics
- Calculus
- Matrix Algebra
- Number Theory
- Sciences
- Physics
- Physics 101
- Physics 102
- Physics 101
- Chemistry
- Chemistry 101
- Chemistry 102
- Chemistry 101
- Physics
As a user, I want to easily view which students are in a particular class, and which classes a particular student is in. I would like to be able to select Anna, for example, and see that she is in Sciences, Physics, Physics 101, and Matrix Algebra. Note that association to the child does not directly imply association to the parent. In this case, Anna can be in Matrix Algebra, but not in Mathematics. Likewise, I want to select Physics 101 and see that Anna, Charles, and Francis are in that class.
The only way I have found to appropriately display these sort of relations is a bipartite graph with one side adjusted for the hierarchy. While this displays all of the information required, it can get quite busy with a significant amount of data (say 1000 students in 100 classes in the above example). Is there a concise way of displaying these sort of relations, or am I better off splitting these into different visualizations or searchable tables?