【问题标题】:pyplot display large numbers in interactive mode [duplicate]pyplot以交互模式显示大量数字[重复]
【发布时间】:2013-05-22 13:01:09
【问题描述】:

我正在尝试使用交互模式在 x 轴上绘制大数字,而不是刻度上的完整数字,我得到 1、1.5 等和 +5.043e3。如何显示完整的数字?

在定义plt.ion() 之后,我在一个循环中有这个:

plt.xlabel("Wavelength (angstroms)")
plt.ylabel("Arbitrary Flux")
plt.plot(xo,yo,'k--')
    for e in range(multispec):
    if ( e == 0):
        plt.plot(MX[e],MY[e], 'r-')
    else:
    plt.plot(MX[e],MY[e])
l=float(int(n))
plt.axis([n-1, n+1, 0.1, 1.1])

n 是在 for 中定义的其他变量。

【问题讨论】:

标签: matlab matplotlib interactive-mode


【解决方案1】:

[复制自How to prevent numbers being changed to exponential form in Python matplotlib figure]

刻度标签的格式由Formatter 对象控制,假设您没有做任何花哨的事情,它将是ScalerFormatter[默认情况下][1]。如果可见值的小部分变化非常小,则此格式化程序将使用常量移位。为避免这种情况,只需将其关闭即可:

plt.plot(arange(0,100,10) + 1000, arange(0,100,10))
ax = plt.gca()
ax.get_xaxis().get_major_formatter().set_useOffset(False)
plt.draw()

如果你想避免一般的科学记数法,

ax.get_xaxis().get_major_formatter().set_scientific(False)

【讨论】:

猜你喜欢
  • 2017-06-04
  • 1970-01-01
  • 2017-11-21
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 2010-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多