-
-
Notifications
You must be signed in to change notification settings - Fork 366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix antialiased line issues #1072
Conversation
Performance of antialiased lines is slower than non-antialiased for 2 reasons:
Timings using code based on last plot in Timeseries jupyter notebook that combines
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know any clearer option name, so it looks ready to merge to me!
This is a WIP to fix various issues with antialiased lines for the impending release.
The major change is support for both 1 and 2-stage aggregations. Where possible (e.g.
ds.any
andds.max
) a single-stage agg is used on an individual line segment basis.ds.min
always uses a 2-stage agg on an individual line segment basis.ds.count
andds.sum
now have 2 options controlled byself_intersect
boolean kwarg. IfFalse
the usual 2-stage agg is used which is very accurate but slower and ignores line self-intersections. IfTrue
, the default, a 1-stage agg is used that considers the previous line segment so that pixels are not overwritten at line segment joins; this therefore deals with self-intersections and is faster but there will be rendering artifacts in some situations (some are fixable, others are unavoidable).I am open to suggestions for a better name for the kwarg than
self_intersect
.Antialiased self-intersecting path using
ds.count
now looks like this (from 15-Large_Data.ipynb):Antialiased multiple timeseries using
ds.count
now looks like this (from 3_Timeseries.ipynb):