如何在matplotlib中禁用自动标签 Package [duplicate]

83qze16e  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(87)

此问题已在此处有答案

Prevent scientific notation(3个答案)
How to prevent numbers being changed to exponential form in a plot(6个回答)
turn off scientific notation for matplotlib [duplicate](1个答案)
Remove axis label offset by default(2个答案)
关闭1年前。
图片说明:

我想让matplotlib显式地打印完整长度的y标签(点后总共有8位小数),但它一直把它们分成偏置(可以在左上角看到)和余数。
我试过禁用自动缩放和设置手动ylim,没有帮助。

balp4ylt

balp4ylt1#

您可以使用plt.gca().get_yticks()检索默认的y刻度,然后使用plt.gca().set_yticklabels将它们设置为所需的格式(.set_yticklabels的文档是here,.gca的文档是here)。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker

## reproduce your curve
x = np.linspace(31.5,34,500)
y = 3.31*(10**-5)*x**2 - 2.22*(10**-3)*x - 3.68*10**1
plt.scatter(x,y,marker='.')

## retrieve and set yticks
yticks = plt.gca().get_yticks()

plt.gca().yaxis.set_major_locator(mticker.FixedLocator(yticks))
plt.gca().set_yticklabels([f"{y:.6f}" for y in yticks])
plt.show()

相关问题