Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
224 views
in Technique[技术] by (71.8m points)

Need help about the tick format when using matplotlib

plt.yticks([0,1.25*1e8,2.50*1e8])

I want 0 1.25*1e8 2.50*1e8 But I get 0 1.25 2.50 with 1e8 on the top.

question from:https://stackoverflow.com/questions/65874975/need-help-about-the-tick-format-when-using-matplotlib

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The scale factor is part of the standard ScalarFormatter. If you don't want it use a different formatter, e.g. FormatStrFormatter:

import matplotlib.pyplot as plt
plt.subplots()
plt.yticks([0,1.25*1e8,2.50*1e8])
plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.FormatStrFormatter('%g'))

enter image description here

If you want 2.5e8 instead of 2.5e+08 you'll need to change the formatted string representation using a FuncFormatter:

plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.FuncFormatter(lambda x,_: f'{x:g}'.replace('+0','')))

enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...