Python 使用matplotlib以固定格式显示值

Python 使用matplotlib以固定格式显示值,python,matplotlib,Python,Matplotlib,关于堆栈溢出的这个问题,有几种答案,但似乎都不起作用 这是我的绘图代码: import matplotlib.pyplot as plt arr = [] for n in range(3,13): for i in range(0,1000): val = 50000000 * float(i) / 10**n if val not in arr: arr.append(val) arr.sort() plt.plot(a

关于堆栈溢出的这个问题,有几种答案,但似乎都不起作用

这是我的绘图代码:

import matplotlib.pyplot as plt

arr = []

for n in range(3,13):
    for i in range(0,1000):
        val = 50000000 * float(i) / 10**n
        if val not in arr:
            arr.append(val)

arr.sort()

plt.plot(arr)
plt.grid(True)
plt.show()
我尝试在
plt.plot(arr)
行之后添加这一行:

plt.gca().get_yaxis().get_major_formatter().set_useOffset(False)
运气不好


我怎样才能做到这一点呢?

这总是让我有点烦,因为不是所有的答案都取决于你如何定义你的情节

对于您的情况,以下工作(我只是导入并创建了一个ScalarFormatter)并将其设置为
get\u yaxis()
行上的轴

import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatter 

# Create a tick formatter
non_sc_formatter = ScalarFormatter(useOffset=False)
non_sc_formatter.set_scientific(False)


arr = []

for n in range(3,13):
    for i in range(0,1000):
        val = 50000000 * float(i) / 10**n
        if val not in arr:
            arr.append(val)

arr.sort()

plt.plot(arr)
plt.gca().get_yaxis().set_major_formatter(non_sc_formatter)  # use the tick formatter
plt.grid(True)
plt.show()

这总是让我很烦,因为不是所有的答案都取决于你如何定义你的情节

对于您的情况,以下工作(我只是导入并创建了一个ScalarFormatter)并将其设置为
get\u yaxis()
行上的轴

import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatter 

# Create a tick formatter
non_sc_formatter = ScalarFormatter(useOffset=False)
non_sc_formatter.set_scientific(False)


arr = []

for n in range(3,13):
    for i in range(0,1000):
        val = 50000000 * float(i) / 10**n
        if val not in arr:
            arr.append(val)

arr.sort()

plt.plot(arr)
plt.gca().get_yaxis().set_major_formatter(non_sc_formatter)  # use the tick formatter
plt.grid(True)
plt.show()

你在图中看到的不是偏移量,而是一个因子。如果轴启用了科学符号,则使用该系数

您可以关闭轴上的科学符号

plt.gca().get_yaxis().get_major_formatter().set_scientific(False)
或者使用更全面的
.ticklab\u格式
方法

plt.gca().ticklabel_format(axis="y", style="plain")

你在图中看到的不是偏移量,而是一个因子。如果轴启用了科学符号,则使用该系数

您可以关闭轴上的科学符号

plt.gca().get_yaxis().get_major_formatter().set_scientific(False)
或者使用更全面的
.ticklab\u格式
方法

plt.gca().ticklabel_format(axis="y", style="plain")

太好了,很有效!!!,只需更改
从matplotlib.ticker导入ScalarFormatter
(颠倒顺序)。非常感谢。太好了,很有效!!!,只需更改
从matplotlib.ticker导入ScalarFormatter
(颠倒顺序)。非常感谢。