python画图坐标轴不出现小数_在matplotlib p的轴上显示小数点和科学符号

在Python的Matplotlib中,要使坐标轴在科学记数法中显示小数,可以使用ScalarFormatter配合MathText。示例代码展示了如何自定义Formatter,以在Y轴上以2位小数的科学记数法格式显示数值。
摘要由CSDN通过智能技术生成

为了在科学记数法中获得格式良好的标签,可以使用ScalarFormatter的格式功能,它使用MathText(Latex)并将其应用于标签。import matplotlib.pyplot as plt

import numpy as np

import matplotlib.ticker as mticker

fig, ax = plt.subplots()

x = np.linspace(0, 300, 20)

y = np.linspace(0,300, 20)

y = y*1e16

ax.plot(x,y)

f = mticker.ScalarFormatter(useOffset=False, useMathText=True)

g = lambda x,pos : "${}$".format(f._formatSciNotation('%1.10e' % x))

plt.gca().yaxis.set_major_formatter(mticker.FuncFormatter(g))

plt.show()

虽然这在很多情况下可能有用,但实际上并不能满足问题的要求。要使所有标签上的数字相等,可以使用更自定义的版本。import matplotlib.pyplot as plt

import numpy as np

import matplotlib.ticker as mticker

fig, ax = plt.subplots()

x = np.linspace(0, 300, 20)

y = np.linspace(0

要在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个刻度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值