I don’t think
Statistics map well to classes or instances.
They look more like libraries of functions. Otherwise you will instantiate a single
Plotting and single
Statistics just to call their methods on something else.
It looks like you grouped your utility methods in classes and ended up with too many methods. This is just an organization/partition problem.
If you want you can just make them modules, define functions there, import the relevant functions into the main program and pass those functions the data they need as arguments.
Also it looks you are just creating a dataframe-like object and adding methods to it. And reading data from somewhere looks like just another utility function.
While nothing stops you from doing those things, including inheriting from dataframe to make your own extended version, I think you are better using df objects as-is, and passing them around, to utility functions.
CLICK HERE to find out more related problems solutions.