python画图坐标轴不出现小数,在matplotlib图的轴上显示小数位和科学计数法
时间: 2024-02-13 08:06:50 浏览: 243
要在Matplotlib图的轴上显示小数位和科学计数法,可以使用Matplotlib的ticker模块和formatter模块。
下面是一个例子,展示如何在Matplotlib图的轴上显示小数位和科学计数法:
```python
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np
#生成一些测试数据
x = np.linspace(0, 100, 101)
y = np.sin(x)
#创建一个图形对象
fig, ax = plt.subplots()
#设置x轴和y轴的范围
ax.set_xlim(0, 100)
ax.set_ylim(-1, 1)
#设置x轴的刻度
ax.xaxis.set_major_locator(ticker.MultipleLocator(10))
ax.xaxis.set_minor_locator(ticker.MultipleLocator(5))
#设置y轴的刻度
ax.yaxis.set_major_locator(ticker.MultipleLocator(0.5))
ax.yaxis.set_minor_locator(ticker.MultipleLocator(0.25))
#设置x轴和y轴的格式化器
ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%.0f'))
ax.yaxis.set_major_formatter(ticker.FormatStrFormatter('%.2f'))
#绘制曲线
ax.plot(x, y)
#显示图形
plt.show()
```
在上面的例子中,我们使用`ticker.FormatStrFormatter()`函数来设置x轴和y轴的格式化器。`'%.0f'`表示将x轴的值格式化为整数,而`'%.2f'`表示将y轴的值格式化为2位小数。
如果要在Matplotlib图的轴上显示科学计数法,可以使用`ticker.ScalarFormatter()`函数,如下所示:
```python
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np
#生成一些测试数据
x = np.linspace(0, 100, 101)
y = np.exp(x)
#创建一个图形对象
fig, ax = plt.subplots()
#设置x轴和y轴的范围
ax.set_xlim(0, 100)
ax.set_ylim(0, 1e10)
#设置x轴的刻度
ax.xaxis.set_major_locator(ticker.MultipleLocator(10))
ax.xaxis.set_minor_locator(ticker.MultipleLocator(5))
#设置y轴的刻度
ax.yaxis.set_major_locator(ticker.LogLocator(base=10, numticks=15))
#设置x轴和y轴的格式化器
ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%.0f'))
ax.yaxis.set_major_formatter(ticker.ScalarFormatter())
#绘制曲线
ax.plot(x, y)
#显示图形
plt.show()
```
在上面的例子中,我们使用`ticker.ScalarFormatter()`函数来设置y轴的格式化器,使其显示科学计数法。`ticker.LogLocator()`函数设置y轴的刻度为对数刻度,`base=10`表示以10为底数,`numticks=15`表示显示15个刻度。
阅读全文