欢迎访问宙启技术站
智能推送

在python中使用matplotlib.tickerFuncFormatter()函数绘制自定义坐标轴刻度标签格式

发布时间:2023-12-18 20:29:15

在Python中使用matplotlib库的ticker.FuncFormatter()函数可以绘制自定义的坐标轴刻度标签格式。该函数可以接受一个自定义的函数作为参数,用于格式化坐标轴刻度标签。下面是一个使用例子,展示如何使用该函数自定义坐标轴刻度标签格式。

首先,我们需要导入matplotlib库和numpy库。

import matplotlib.pyplot as plt
import numpy as np

然后,定义一个自定义的格式化函数,该函数将接受两个参数:刻度值和刻度位置。例如,我们可以定义一个将刻度值添加百分号并取两位小数的函数。

def percentage_formatter(x, pos):
    return '{:.2f}%'.format(x)

接下来,创建一个示例图表,并设置x轴和y轴的范围。

fig, ax = plt.subplots(figsize=(8, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
ax.plot(x, y)
ax.set_xlim(0, 10)
ax.set_ylim(-1, 1)

然后,创建一个FuncFormatter对象,并将自定义的格式化函数传递给它。

formatter = plt.ticker.FuncFormatter(percentage_formatter)

将自定义的格式化函数应用于x轴和y轴的刻度标签。

ax.xaxis.set_major_formatter(formatter)
ax.yaxis.set_major_formatter(formatter)

最后,展示图表。

plt.show()

完整的代码如下:

import matplotlib.pyplot as plt
import numpy as np

def percentage_formatter(x, pos):
    return '{:.2f}%'.format(x)

fig, ax = plt.subplots(figsize=(8, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
ax.plot(x, y)
ax.set_xlim(0, 10)
ax.set_ylim(-1, 1)

formatter = plt.ticker.FuncFormatter(percentage_formatter)

ax.xaxis.set_major_formatter(formatter)
ax.yaxis.set_major_formatter(formatter)

plt.show()

运行以上代码,将会得到一个带有自定义格式化坐标轴刻度标签的图表,刻度标签将以百分比形式表示,保留两位小数。