real - Espacio en blanco molesto en el gráfico de barras(matplotlib, Python)
python graficos 2d (1)
Probablemente sea una pregunta trivial, pero estoy tratando de trazar un gráfico de barras con matplotlib y con texto girado en el eje x El código que estoy usando se muestra a continuación:
fig = plt.figure()
x_labels_list = []
for i in range(0, pow(2, N)):
x_labels_list.append(str(f(i))) # The function f() converts i to a binary string
ax = plt.subplot(111)
width = 1.0
bins = map(lambda x: x-width, range(1,pow(2,N)+1))
ax.bar(bins, my_data, width=width)
ax.set_xticks(map(lambda x: x-width/2, range(1,pow(2,N)+1)))
ax.set_xticklabels(x_labels_list, rotation=90, rotation_mode="anchor", ha="right")
Funciona perfectamente, pero obtengo un espacio en blanco molesto a la derecha del eje x, como lo muestra la elipse roja en la siguiente imagen:
¿Sabes cómo puedo eliminarlo? ¡Gracias por adelantado!
Intente llamar a plt.xlim()
con el número de contenedores, por ejemplo
plt.xlim([0,bins.size])
Aquí hay un ejemplo:
#make some data
N = 22
data = np.random.randint(1,10,N)
bin = np.arange(N)
width = 1
#plot it
ax = plt.subplot(111)
ax.bar(bin, data, width, color=''r'')
plt.show()
No plt.xlim()
salida de plt.xlim()
:
Ahora plt.xlim
gráfica con plt.xlim
usando el número de contenedores para definir el tamaño:
#plot it
ax = plt.subplot(111)
ax.bar(bin, data, width, color=''r'')
plt.xlim([0,bin.size])
plt.show()
Resultados:
Puede haber una mejor manera, pero esto debería funcionar para usted.