我想创建一个 10 的幂数组作为绘图 y 轴的标签。
我正在使用 plt.yticks()
并将 matplotlib 导入为 plt,但这在这里并不重要。
我有一些图,其中 y 轴从 1e3 到 1e15 不等。这些是对数图。
Matplotlib 会自动显示带有 1e2 步长刻度的刻度线,而我希望步长为 10(以便能够正确使用小刻度线)。
我想使用 plt.yticks(numpy.arange(1e3, 1e15, 10))
命令,但是 numpy.arange(1e3, 1e15, 10)
导致内存错误。它不是应该输出一个长度为 13 的数组吗?为什么内存变满了?
如何绕过这个问题而不是手动构建数组?
我也尝试过使用内置的 range
但它不适用于 float 。
谢谢。
最佳答案
尝试使用 NumPy
中的 logspace
作为
plt.yticks(numpy.logspace(3, 15, 13))
在这里您给出起始和最后的指数(10 的幂)以及它们之间的数据点数。如果你打印上面的网格,你会得到以下内容
array([1.e+03, 1.e+04, 1.e+05, 1.e+06, 1.e+07, 1.e+08, 1.e+09, 1.e+10,
1.e+11, 1.e+12, 1.e+13, 1.e+14, 1.e+15])
关于python - MemoryError 与 numpy arange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52383129/