He sido la generación de gráficos de barras que se ven así:barh matplotlib produce poco firme espaciamiento entre barras
en cuenta que el espacio vertical en las etiquetas es desigual por alguna razón; No estoy seguro de si esto tiene que ver con la forma en que he asignado los tics o el mecanismo que está colocando el texto. código relevante:
height_factor = 40.0
ind = np.linspace(0,len(sorted_totals)*height_factor,num=len(sorted_totals))
width = 0.25
fig = plt.figure(figsize=(15.5, 8.75),dpi=300)
p1 = plt.barh(ind,map(int,sorted_composite[:,0]),color='blue',align='center',height=height_factor)
p1 = plt.barh(ind,map(int,sorted_composite[:,2]),color=(0.75,0.1,0.1),align='center',height=height_factor)
plt.ylabel('# of Picks (blue) + # of Bans (red)')
plt.yticks(ind, sorted_totals[:,0])
plt.subplots_adjust(bottom=0.05, left=0.14,right=0.95,top=0.95)
plt.ylim([ind.min() - height_factor, ind.max() + height_factor])
Mi datos se almacenan en sorted_composite y ind son los valores que estoy usando para colocar las barras (las localizaciones Ytick). Estoy usando linspace para producir barras espaciadas uniformemente, y esto solo funciona y no estoy seguro exactamente por qué.
Estaba pensando que su problema puede estar relacionado con tener todas esas barras en vez encajados, pero yo he estado tratando su código de 5 a ~ 50 bares y no hay problema aquí. –
Sí, tengo la sensación de que se trata de un problema de redondeo de colocación de píxeles.es decir, si tiene una imagen de 8 píxeles de altura y desea dibujar una línea a través del centro, la dibuja a lo largo de la fila de píxeles 4 o de la fila de píxeles 5; De cualquier manera se ve mal – user1127062
En una nota consigo malos resultados, incluso con un caso de prueba trivial: 'de importación numpy *' de pylab importación de datos * = ceros (50) 10 ind = arange (10) barh (ind, data) show() ' Parece bastante malo – user1127062