繁体   English   中英

jupyter中matplotlib内联图中的科学计数法

[英]Scientific Notation in matplotlib inline plots in jupyter

我正在绘制10 ^ -8阶的值,并且我希望在jupyter中的内联图以该(科学)表示法输出yaxis刻度。 我试过了 :

plt.gca().yaxis.set_major_formatter(FormatStrFormatter('%.1E'))

以及

plt.gca().yaxis.get_major_formatter().set_powerlimits((0, -10))

plt.ticklabel_format(style='sci')

但似乎没有任何效果。 我究竟做错了什么? 我有以下示例:

import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
import mpld3
mpld3.enable_notebook()
import matplotlib.ticker as mtick

a=5*10**-8
b=3*10**-8
x=np.arange(0,10,0.01)

y=a*x+b

plt.figure(figsize=(12,5))
plt.subplot(1,2,1)
plt.plot(x,y)
# plt.ticklabel_format(style='sci')
# plt.gca().yaxis.get_major_formatter().set_powerlimits((0, -10))
plt.gca().yaxis.set_major_formatter(mtick.FormatStrFormatter('%.0e'))
plt.show()

除了在matplotlib中轴的刻度格式之外,任何指针都将对我有所帮助,除了在matplotlib输入 轴的刻度格式外,在 此处输入链接描述,或者在matplotlib中更改x轴刻度。注意:如果我注释掉了import mpld3mpld3.enable_notebook()然后它可以工作,但不能与绘图交互...在jupyter中绘图内联时,是否有对matplotlib的特殊处理? 谢谢!

您可以使用set_yticklabels获得类似的输出。

ax = plt.gca()
ax.set_yticklabels(['10^-8','2*10^-8','3*10^-8','4*10^-8'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM