Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在符号图上使用Python中的matplotlib防止轴使用科学记数法(10的幂)_Python_Python 3.x_Matplotlib_Plot_Scientific Notation - Fatal编程技术网

在符号图上使用Python中的matplotlib防止轴使用科学记数法(10的幂)

在符号图上使用Python中的matplotlib防止轴使用科学记数法(10的幂),python,python-3.x,matplotlib,plot,scientific-notation,Python,Python 3.x,Matplotlib,Plot,Scientific Notation,我读了这里()和这里(),并尝试了他们的解决方案,但没有结果 如何将y轴转换为显示普通十进制数字而不是科学记数法?注意这是Python 3.5.2 这是我的密码: #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.appe

我读了这里()和这里(),并尝试了他们的解决方案,但没有结果

如何将y轴转换为显示普通十进制数字而不是科学记数法?注意这是Python 3.5.2

这是我的密码:

#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()

您希望如何显示
10^15
?作为
100000000000000
?!另一个答案适用于默认格式化程序,当您切换到日志比例时,将使用具有不同规则集的
LogFormatter
。您可以切换回
ScalarFormatter
并禁用偏移

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()

有关所有可用的
格式化程序
类,请参阅


(此图像是从2.x分支生成的,但应适用于所有最新版本的mpl)

看起来很棒!我向一个中学生展示了这一点,所以是的,尽管10^15作为100000000000000是不可读的,但它对所有零的影响更大。是否可以强制使用每3个零放一个逗号的格式?请参阅编辑,您可能希望使用或