gpt4 book ai didi

Python 情节 : How to denote ticks on the axes as powers?

转载 作者:行者123 更新时间:2023-12-02 15:21:13 31 4
gpt4 key购买 nike

我使用 matplot 库在 python 中绘制绘图。我必须生成的数字非常大,所以轴上的刻度也是很大的数字并且占用大量空间。我试图将它们呈现为幂(例如,我想要 10^8 而不是勾选 100000000)。我使用了命令:ax.ticklabel_format(style='sci', axis='x', scilimits=(0,4)) 但是这只创建了这样的东西

enter image description here

是否有任何其他解决方案可以使绘图的刻度为:1 x 10^4、2 x 10^4 等,或者在标签刻度的末尾将值 1e4 写为 10^4?

最佳答案

您可以使用 matplotlib.ticker模块,并将 ax.xaxis.set_major_formatter 设置为 FuncFormatter .

例如:

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

plt.rcParams['text.usetex'] = True

fig,ax = plt.subplots(1)

x = y = np.arange(0,1.1e4,1e3)
ax.plot(x,y)

def myticks(x,pos):

if x == 0: return "$0$"

exponent = int(np.log10(x))
coeff = x/10**exponent

return r"${:2.0f} \times 10^{{ {:2d} }}$".format(coeff,exponent)

ax.xaxis.set_major_formatter(ticker.FuncFormatter(myticks))

plt.show()

enter image description here

请注意,这使用 LaTeX 格式 (text.usetex = True) 在刻度标签中呈现指数。还要注意区分 LaTeX 大括号和 python 格式字符串大括号所需的双大括号。

关于Python 情节 : How to denote ticks on the axes as powers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36480077/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com