例如 x = [1~180,000] 当我绘制它时,在 x 轴上,它显示:1, 20,000, 40,000, ... 180,000 这些 0 真的很烦人
如何将 x 轴的单位长度更改为 1000,使其显示:1、20、40、... 180,并显示其单位为 1000。
我知道我可以自己进行线性变换。但是在matplotlib中没有这样做的功能吗?
例如 x = [1~180,000] 当我绘制它时,在 x 轴上,它显示:1, 20,000, 40,000, ... 180,000 这些 0 真的很烦人
如何将 x 轴的单位长度更改为 1000,使其显示:1、20、40、... 180,并显示其单位为 1000。
我知道我可以自己进行线性变换。但是在matplotlib中没有这样做的功能吗?
如果您的目标是制作出版质量数字,您将需要对坐标轴标签进行精细控制。一种方法是提取标签文本并应用您自己的自定义格式:
import pylab as plt
import numpy as np
# Create some random data over a large interval
N = 200
X = np.random.random(N) * 10 ** 6
Y = np.sqrt(X)
# Draw the figure to get the current axes text
fig, ax = plt.subplots()
plt.scatter(X,Y)
ax.axis('tight')
plt.draw()
# Edit the text to your liking
label_text = [r"$%i \cdot 10^4$" % int(loc/10**4) for loc in plt.xticks()[0]]
ax.set_xticklabels(label_text)
# Show the figure
plt.show()
您可以使用pyplot.ticklabel_format
将标签样式设置为科学计数法。
import pylab as plt
import numpy as np
# Create some random data over a large interval
N = 200
X = np.random.random(N) * 10 ** 6
Y = np.sqrt(X)
# Draw the figure to get the current axes text
fig, ax = plt.subplots()
plt.scatter(X,Y)
ax.axis('tight')
plt.draw()
plt.ticklabel_format(style='sci',axis='x',scilimits=(0,0))
# Edit the text to your liking
#label_text = [r"$%i \cdot 10^4$" % int(loc/10**4) for loc in plt.xticks()[0]]
#ax.set_xticklabels(label_text)
# Show the figure
plt.show()