xticks ticks ticklabel_format tick scientific pyplot number minor python python-3.x matplotlib plot scientific-notation

ticklabel_format - ticks python



Evite que los ejes estén en notación científica(potencias de 10) usando matplotlib en Python en el diagrama de semilogía (1)

¿Cómo quieres mostrar 10^15 ? Como 1000000000000000 ?! La otra respuesta se aplica al formateador predeterminado, cuando cambia a la escala de registro, se utiliza un LogFormatter que tiene un conjunto diferente de reglas. Puede volver a ScalarFormatter y desactivar el desplazamiento

import matplotlib.pyplot as plt import matplotlib.ticker as mticker plt.ion() possible_chars = 94 max_length = 8 pw_possibilities = [] for num_chars in range(1, max_length+1): pw_possibilities.append(possible_chars**num_chars) x = range(1, max_length+1) y = pw_possibilities #plot fig, ax = plt.subplots() ax.semilogy(x, y, ''o-'') ax.set_xlabel("num chars in password") ax.set_ylabel("number of password possibilities") ax.set_title("password (PW) possibilities verses # chars in PW") ax.yaxis.set_major_formatter(mticker.ScalarFormatter()) ax.yaxis.get_major_formatter().set_scientific(False) ax.yaxis.get_major_formatter().set_useOffset(False) fig.tight_layout() plt.show()

Consulte http://matplotlib.org/api/ticker_api.html para ver todas las clases de Formatter disponibles.

(esta imagen se genera fuera de la rama 2.x, pero debería funcionar en todas las versiones recientes de mpl)

He leído aquí ( Cómo evitar que los números cambien a forma exponencial en la figura de Matplotlib de Python ) y aquí ( Matplotlib: deshabilite las potencias de diez en el gráfico de registro ) y probé sus soluciones en vano.

¿Cómo puedo convertir mi eje y para mostrar números decimales normales en lugar de notación científica? Tenga en cuenta que esto es Python 3.5.2.

Aquí está mi código:

#Imports: import matplotlib.pyplot as plt possible_chars = 94 max_length = 8 pw_possibilities = [] for num_chars in range(1, max_length+1): pw_possibilities.append(possible_chars**num_chars) x = range(1, max_length+1) y = pw_possibilities #plot plt.figure() plt.semilogy(x, y, ''o-'') plt.xlabel("num chars in password") plt.ylabel("number of password possibilities") plt.title("password (PW) possibilities verses # chars in PW") plt.show()