Conversation
to allow for development of 4.1 without breaking 4.0
IPlottable implements IRenderable
scatter plot works
SystemDrawingRenderer is now created and passed in. IPlottable and IRenderable do not depend on System.Drawing.
|
By default a |
tick generation class is its own module and could easily be replaced with experimental tick systems
except for PlotInfo (required for click-drag mouse operations) and the List of Renderables, the Plot module is now stateless.
figure dimension state (Height and Width) was added back
adjustments to figure PADDING (triggered manually) are now distinct from adjustments to figure SIZE (triggered with every render)
|
@StendProg you may be interested to see there is now a working SkiaSharp control. This project still needs a lot of improvement, but this early proof-of-concept is very encouraging! |
axes are automatically added when plottables are seen indexing them also removed the OnRender delegate because there were too many cases where it wouldn't work well (e.g., after changing color, or adding a plottable to the list manually). See discussion in #525
|
Hi Scott (@swharden ),
This works awesome! After some tunings (disable rounded corners, call signle I pereodically check your work on this branch. Of course, minor nitpicks arise, but I do not consider them significant enough to distract you from your main work. And now I will not. The only thing that raises concerns is that you have started too large-scale changes. Wouldn't have stopped in the middle. You can leave the implementation of the Skia Renderer for later. Maybe I can help when the architecture is finally settled. I fully agree that such changes deserve an major version increment. Good work! |
based on comments by @StendProg in #521
|
Thank you for your feedback @StendProg! I too am concerned about the scale of these changes and the breaking API, and it sounds like we are in agreement that a major version increment is the way to go here. Maintaining ScottPlot4 while developing ScottPlot5 in a separate folder seems like a good way to move forward, since I won't have to stop work on either one to support the other. I learned a lot by working in this branch, especially about how to support multiple axes and improve the layout system. I think I can take much of what I have learned here and apply it to ScottPlot 4.0 in a way that is non-breaking. I'll probably stop work on this branch for a few days to work on ScottPlot 4, then return to this with fresh eyes. Thank you again for your input along the way! |
|
This is a great start, but there are many concepts here which can be applied to ScottPlot 4 to make it better (without throwing it away and starting over). I'm going to close this PR and copy these files into a folder in the main repository so it can be used for experimentation. |
|
Hi Scott, When will be the next stable (Scottplot 5) release. Does it supports more than 2 y-axis (additional/multiple y-axis for multiple plots) ? |
|
After a lot of work I was able to implement all these features while retaining the original ScottPlot 4 API (although some methods were marked obsolete). Because of this, plans outlined above eventually became ScottPlot 4.1, which is currently on NuGet as a pre-release package. ScottPlot 4.1 indeed supports multiple axes and can be used now
Good luck with your migration! |
This branch/PR tracks development of ScottPlot 5 (#505)
Contents of
/srcwill be moved into/src/ScottPlot4and work will begin in/src/ScottPlot5ScottPlot 4 will be preserved and maintained, with new releases that are free of breaking changes
ScottPlot 5 will have breaking API changes, and be distributed on NuGet as "pre-release" until it is stable