I do have a number of different ways of generating charts and at least one would probably be adaptable for your needs.
In fact, when developing my databases for schools, we generated a lot of data and charts of this kind
However, before suggesting any solutions, it would help to see some example data.
Can you post data that I can use together with any relevant queries used to calculate the average for each group of students.
Make sure the data is anonymised by changing names or by just supplying student IDs