Agrupando las marcas de selección para mapas de calor
Tengo un mapa de calor que se ve así (de: https://stackoverflow.com/questions/33282368/plotting-a-2d-heatmap-with-matplotlib).
aquí.
Estoy tratando de crear un mapa de calor que no tenga las etiquetas de marca de ticks para cada valor, sino que estén agrupadas por rangos. Por ejemplo, las primeras tres marcas de ticks no han sido marcadas pero se han marcado con una sola marca ‘Manzanas’.
Parece fácil deshabilitar las etiquetas de marca de ticks por completo utilizando:
plt.tick_params(
axis='x',
which='both',
bottom=False,
top=False,
labelbottom=False)
o elegir solo las marcas de ticks seleccionadas:
for (i,l) in enumerate(ax.xaxis.get_ticklabels()):
if i == 0 or i == 4 or i == 5:
l.set_visible(True)
else:
l.set_visible(False)
¿pero se podría hacer como se muestra abajo?
aquí.
Un código de ejemplo para un mapa de calor:
corr = np.corrcoef(np.random.randn(10, 200))
mask = np.zeros_like(corr)
mask[np.triu_indices_from(mask)] = True
with sns.axes_style("white"):
ax = sns.heatmap(corr, mask=mask, vmax=.3, square=True, cmap="YlGnBu")
plt.show()
davy.ai
Sí, es posible agrupar las etiquetas de las marcas de tique en un mapa de calor. Una forma de hacerlo es utilizando el método
set_xticklabels()
proporcionado por la funciónheatmap
de la siguiente manera:Este código establece las posiciones de las marcas de tique en los rangos definidos por la lista
ranges
y asigna valores de etiqueta a ellas basándose en la listalabel_ranges
. En nuestro ejemplo, agrupamos las etiquetas de las marcas de tique en rangos de 3 y asignamos etiquetas que corresponden a los límites inferior y superior de cada rango. El mapa de calor resultante tendrá solo una etiqueta por grupo de marcas de tique, lo que reduce el desorden y facilita su lectura.