如何强制Matplotlib将X轴上的值显示为整数?

您所在的位置:网站首页 python只保留整数 如何强制Matplotlib将X轴上的值显示为整数?

如何强制Matplotlib将X轴上的值显示为整数?

2024-03-24 23:46| 来源: 网络整理| 查看: 265

如何强制Matplotlib将X轴上的值显示为整数?

在使用Python可视化库Matplotlib绘制图表时,你可能会遇到一个问题:X轴上显示的值是浮点数,但你希望将其显示为整数。这时我们可以采用下面介绍的方法,通过设置Matplotlib的参数来强制将X轴上的值显示为整数。

方法一:使用ax.xaxis.set_major_locator()和ax.xaxis.set_major_formatter()

在Matplotlib中,可以通过ax.xaxis.set_major_locator()和ax.xaxis.set_major_formatter()方法设置X轴的刻度值和显示格式。

其中,ax.xaxis.set_major_locator()控制刻度的显示位置,ax.xaxis.set_major_formatter()控制刻度的显示格式。

下面的示例代码通过设置ax.xaxis.set_major_locator()和ax.xaxis.set_major_formatter()来实现将X轴上的值显示为整数:

import matplotlib.pyplot as plt import numpy as np # 生成示例数据 x = np.arange(0, 10, 0.1) y = np.sin(x) # 创建图表对象和子图对象 fig, ax = plt.subplots() # 设置X轴上的刻度位置和显示格式 ax.xaxis.set_major_locator(plt.MaxNLocator(integer=True)) ax.xaxis.set_major_formatter(plt.FormatStrFormatter('%d')) # 绘制图形 ax.plot(x, y) # 显示图形 plt.show()

在上面的示例代码中,我们首先使用NumPy生成了一组示例数据,然后创建了一个子图对象ax。接着,我们使用ax.xaxis.set_major_locator()方法设置X轴上的刻度位置为整数,即plt.MaxNLocator(integer=True);使用ax.xaxis.set_major_formatter()方法设置X轴刻度的显示格式为整数,即plt.FormatStrFormatter(‘%d’)。最后,将数据绘制在图表上,并通过plt.show()方法显示图表。

方法二:使用plt.xticks()和plt.xlim()

除了使用ax.xaxis.set_major_locator()和ax.xaxis.set_major_formatter()方法设置X轴的刻度值和显示格式外,还可以使用plt.xticks()和plt.xlim()方法实现将X轴上的值显示为整数。

在下面的示例代码中,我们通过plt.xticks()方法将X轴的刻度值设置为整数,即plt.xticks(np.arange(0, 10, 1));通过plt.xlim()方法设置X轴的取值范围,即plt.xlim(0, 10)。其他的绘图操作与方法一相同。

import matplotlib.pyplot as plt import numpy as np # 生成示例数据 x = np.arange(0, 10, 0.1) y = np.sin(x) # 创建图表对象和子图对象 fig, ax = plt.subplots() # 设置X轴上的刻度位置和显示格式 plt.xticks(np.arange(0, 10, 1)) plt.xlim(0, 10) # 绘制图形 ax.plot(x, y) # 显示图形 plt.show() 方法三:使用FuncFormatter

除了前两种方法以外,还可以使用FuncFormatter来实现将X轴上的值显示为整数。FuncFormatter是一个可调用对象,用于将X轴上的数值转换为字符串。我们可以通过定义一个函数,将X轴上的浮点数转换为整数字符串并返回,然后将这个函数作为参数传递给FuncFormatter。

下面的示例代码通过设置ax.xaxis.set_major_formatter()和FuncFormatter来实现将X轴上的值显示为整数:

import matplotlib.pyplot as plt import numpy as np from matplotlib.ticker import FuncFormatter # 生成示例数据 x = np.arange(0, 10, 0.1) y = np.sin(x) # 定义转换函数 def format_fn(tick_val, tick_pos): return int(tick_val) # 创建图表对象和子图对象 fig, ax = plt.subplots() # 设置X轴上的刻度位置和显示格式 ax.xaxis.set_major_formatter(FuncFormatter(format_fn)) #绘制图形 ax.plot(x, y) # 显示图形 plt.show()

在上面的示例代码中,我们首先生成了一组示例数据,然后定义了一个转换函数format_fn,将X轴上的浮点数转换为整数并返回。接着,创建了一个子图对象ax,使用ax.xaxis.set_major_formatter()方法设置X轴上的刻度显示格式为转换函数format_fn。最后,将数据绘制在图表上,并通过plt.show()方法显示图表。

结论

本篇文章介绍了如何通过Matplotlib的参数设置,将X轴上的值显示为整数。无论是通过ax.xaxis.set_major_locator()和ax.xaxis.set_major_formatter()、plt.xticks()和plt.xlim(),还是通过FuncFormatter,都可以轻松实现这一功能。在图表绘制中,正确显示X轴上的数值对于数据分析和数据可视化都是非常重要的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3