-
-
Notifications
You must be signed in to change notification settings - Fork 18.5k
ENH: Styler.bar
accepts matplotlib colormap
#43662
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
Conversation
Styler.bar
accepts matplotlib colormapStyler.bar
accepts matplotlib colormap
@@ -3523,15 +3521,48 @@ def css_calc(x, left: float, right: float, align: str): | |||
"value defining the center line or a callable that returns a float" | |||
) | |||
|
|||
rgbas = None |
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.
don't we have a similar utlity in the plotting routines?
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.
had a quick look, this is converting mpl colors to hex codes, which is not the usual direction for plotting.
ignoring the arg validation, though which is specific to the method, this op is just a single loop comprehension: [mpl_colors.rgb2hex(rgba) for rgba in rgbas]
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.
an alternative is to add a cmap
arg, which accepts a string or mpl ColorMap, similar to background_gradient
and text_gradient
.
Advantage is: i) consistency ii) autoloading a colormap from string rather than user have to create a Colormap instance.
Disadvatange is: having a color
and a cmap
arg which is slightly confusing although can b documented away.
?
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.
hmm i do like the consisteny of i), can we kill the color
arg (may need to deprecate)
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.
not really because you need differentiate between a color which is a valid css str e.g. "#ee3ee" or "rgb(10,200,10)" or "salmon" and between a string which is a matplotlib colormap, i.e. "inferno" or "PuBu",
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.
do we have this color, cmap api anywhere else?
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.
The following use color
: highligh_min/max/betwen/quantile/null
, and these use cmap
: text/background_gradient
. But the use is specific where either a specific color or a color gradient is useful.
For bar
either is useful.
Matplot lib also separates the arguments on some functions, e.g. scatter
, where it has a c
, color
and cmap
argument: https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.scatter.html?highlight=scatter#matplotlib.axes.Axes.scatter
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.
hah, mpl api is not great here
5a5e155
to
74f249e
Compare
ok this is fine, thanks @attack68 |
No one has requested this but I think its nice none-the-less, especially in finance / science. Kind of like background_gradient with slightly different vizualisations.