You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently the objects returned by PointPixelRegion.as_artist() and e.g. CirclePixelRegion.as_artist() are different. In one case a Line2D object is returned, while in the other it is a Patch object. This will always require an extra check when looping over or plotting multiple regions the Line2D plotting arguments are different than the ones for Patch. E.g. facecolor and edgecolor will work for Patch, but the corresponding argument for Line2D are markeredgecolor and markerfacecolor instead. So one typically ends up with code like:
I was wondering whether is is possible to unify the behavior, such that the special cases are not needed anymore. I guess what is convenient for the Line2D object is the ability to work with different marker styles (points, stars, triangles etc.), which would be good to keep. From a quick search it seems there is no MarkerPatch in matplotlib, which is unfortunate. @keflavich suggested to use a PathPatch, however this might require a lot of additional code, to achieve what Line2D already does. A compromise might be to maybe allow for an alias of the most common Patch properties, like:
Ah, my proposal was because I was thinking Line2D was for actual line segments, not point collections. There may be a more appropriate patch type than Line2D for Point regions. I don't love the idea of maintaining our own matplotlib keyword alias lists.
@keflavich I agree maintaining and our matplotlib keyword alias is far from ideal. I guess the object we are looking for is a MarkerPatch, which does not seem to exist. Maybe it is even worth opening a feature request to matplotlib...
Currently the objects returned by
PointPixelRegion.as_artist()
and e.g.CirclePixelRegion.as_artist()
are different. In one case aLine2D
object is returned, while in the other it is aPatch
object. This will always require an extra check when looping over or plotting multiple regions theLine2D
plotting arguments are different than the ones forPatch
. E.g.facecolor
andedgecolor
will work forPatch
, but the corresponding argument forLine2D
aremarkeredgecolor
andmarkerfacecolor
instead. So one typically ends up with code like:I was wondering whether is is possible to unify the behavior, such that the special cases are not needed anymore. I guess what is convenient for the
Line2D
object is the ability to work with different marker styles (points, stars, triangles etc.), which would be good to keep. From a quick search it seems there is noMarkerPatch
inmatplotlib
, which is unfortunate. @keflavich suggested to use aPathPatch
, however this might require a lot of additional code, to achieve whatLine2D
already does. A compromise might be to maybe allow for an alias of the most commonPatch
properties, like:The text was updated successfully, but these errors were encountered: