作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在使用 python 2.7 在 pyqt 程序中使用 matplotlib 绘制一些大数字。我有一个 y 轴,范围从 1e+18 到 3e+18(通常)。我希望看到每个刻度线都以科学计数法显示值并保留 2 个小数位。例如 2.35e+18 而不是 2e+18,因为 2e+18 和 3e+18 之间的值对于几个刻度线仍然只读取 2e+18。这是该问题的一个示例。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
x = np.linspace(0, 300, 20)
y = np.linspace(0,300, 20)
y = y*1e16
ax.plot(x,y)
ax.get_xaxis().set_major_formatter(plt.LogFormatter(10, labelOnlyBase=False))
ax.get_yaxis().set_major_formatter(plt.LogFormatter(10, labelOnlyBase=False))
plt.show()
最佳答案
如果您使用 matplotlib.ticker.FormatStrFormatter
而不是 LogFormatter
,这真的很容易做到。以下代码将使用 '%.2e'
格式标记所有内容:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
fig = plt.figure()
ax = fig.add_subplot(111)
x = np.linspace(0, 300, 20)
y = np.linspace(0,300, 20)
y = y*1e16
ax.plot(x,y)
ax.yaxis.set_major_formatter(mtick.FormatStrFormatter('%.2e'))
plt.show()
关于python - 在 matplotlib 图的轴上显示小数位和科学记数法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25750170/
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我是一名优秀的程序员,十分优秀!