📜  Python中的 Matplotlib.ticker.FuncFormatter 类

📅  最后修改于: 2022-05-13 01:55:38.396000             🧑  作者: Mango

Python中的 Matplotlib.ticker.FuncFormatter 类

Matplotlib是Python中用于数组二维图的惊人可视化库。 Matplotlib 是一个基于 NumPy 数组构建的多平台数据可视化库,旨在与更广泛的 SciPy 堆栈配合使用。

matplotlib.ticker.FuncFormatter

matplotlib.ticker.FuncFormatter 类使用用户定义的函数进行格式化。此用户定义函数必须将两个值作为刻度值x和位置pos的输入。

示例 1:

Python3
import matplotlib.pyplot as plt
import matplotlib.ticker as tick
import numpy as np
 
 
x = np.linspace(0, 10, 1000)
y = 0.000001 * np.sin(10 * x)
 
fig = plt.figure()
ax = fig.add_subplot(111)
 
ax.plot(x, y)
 
def y_fmt(x, y):
    return '{:2.2e}'.format(x).replace('e', 'x10^')
 
ax.yaxis.set_major_formatter(tick.FuncFormatter(y_fmt))
 
plt.show()


Python3
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter
 
 
fig, ax = plt.subplots()
ax.axis([0.01, 10000, 1, 1000000])
ax.loglog()
 
for axis in [ax.xaxis, ax.yaxis]:
    formatter = FuncFormatter(lambda y, _: '{:.16g}'.format(y))
    axis.set_major_formatter(formatter)
 
plt.show()


输出:

示例 2:

Python3

import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter
 
 
fig, ax = plt.subplots()
ax.axis([0.01, 10000, 1, 1000000])
ax.loglog()
 
for axis in [ax.xaxis, ax.yaxis]:
    formatter = FuncFormatter(lambda y, _: '{:.16g}'.format(y))
    axis.set_major_formatter(formatter)
 
plt.show()

输出: