def polar_map(hist, ax, show_zero=True, **kwargs):
"""Polar map of polar histograms.
Similar to map, but supports less parameters.
Returns
-------
plt.Axes
"""
data = get_data(hist, cumulative=False, flatten=True,
density=kwargs.pop("density", False))
# transformed = transform_data(data, kwargs)
cmap = _get_cmap(kwargs)
norm, cmap_data = _get_cmap_data(data, kwargs)
colors = cmap(cmap_data)
rpos, phipos = (arr.flatten() for arr in hist.get_bin_left_edges())
dr, dphi = (arr.flatten() for arr in hist.get_bin_widths())
rmax, _ = (arr.flatten() for arr in hist.get_bin_right_edges())
bar_args = {}
if "zorder" in kwargs:
bar_args["zorder"] = kwargs.pop("zorder")
alphas = _get_alpha_data(cmap_data, kwargs)
if np.isscalar(alphas):
alphas = np.ones_like(data) * alphas
for i in range(len(rpos)):
if data[i] > 0 or show_zero:
bin_color = colors[i]
# TODO: align = "edge"
bars = ax.bar(phipos[i], dr[i], width=dphi[i], bottom=rpos[i], color=bin_color,
edgecolor=kwargs.get("grid_color", cmap(0.5)), lw=kwargs.get("lw", 0.5),
alpha=alphas[i], **bar_args)
ax.set_rmax(rmax.max())
return ax
评论列表
文章目录