python matplotlib

python - El gráfico de barras Matplotlib no dibuja bordes/bordes



(3)

Como ya se explicó, este es un error matplotlib . Sin embargo, solo falta una transmisión del edgecolor, así que aquí hay una solución más compacta:

plt.bar(x, y, linewidth=20, edgecolor=[''g'']*len(x))

Tengo este código para mi gráfico de barras.

ax1 = plt.subplot2grid((1,1),(0,0)) ax1.bar(edges2, Nnorm, width=0.02, edgecolor=''green'', linewidth=20)

Pensé que eso debería hacer que mi gráfico de barras tenga bordes verdes. Pero no lo hace. Hace una barra en el extremo izquierdo verde. ¿Qué estoy haciendo mal? Facecolor funciona.


Desafortunadamente, este es un error en matplotlib 2.1 . Está arreglado en matplotlib versión 2.2.

A partir de ahora, una solución es establecer el color del borde y el ancho de línea para cada barra individualmente:

import matplotlib.pyplot as plt bars = plt.bar(range(4), [3,4,1,5]) for bar in bars: bar.set_edgecolor("green") bar.set_linewidth(20) plt.show()


Otra solución es pasar un parámetro alfa:

plt.bar(range(4), [3,4,1,5], alpha=1, edgecolor=''k'', linewidth=20)

NOTA: Esto solo funciona si el color de borde que está configurando es negro; de lo contrario, la primera columna tendrá el color de borde correcto y el resto será negro