我想创建一个10的幂数组作为绘图的y轴的标签。
我正在使用导入为plt的matplotlib的plt.yticks()
,但这在这里并不重要。
我绘制了y轴从1e3到1e15的曲线图。那是对数图。
Matplotlib会自动显示那些带有1e2步的记号,我希望将步长改为10(以便能够正确地使用minortick)。在
我想如前所述使用plt.yticks(numpy.arange(1e3, 1e15, 10))
命令,但是numpy.arange(1e3, 1e15, 10)
会导致内存错误。它不是应该输出长度为13的数组吗?为什么记忆会变满?在
如何克服这个问题而不手动构建阵列?在
我也尝试过使用内置的range
,但它不能用于float。在
谢谢。在
你也可以这样做:
小数点很重要,因为没有它,您将溢出整数的默认
int32
数据类型另一种方法不是显式地定义记号位置,而是使用^{} 模块中的^{} ,并手动增加刻度数(默认情况下,它将尝试设置一个漂亮的刻度数;也就是说,这样看起来不会太狭窄)。在
在这个例子中,我将右边的
Axes
上的节拍数设置为13(使用numticks=13
),您可以看到这增加了节拍数,因此每个10的整数次幂都有一个。在编辑:
要用这个方法添加次要刻度,我们可以使用另一个
^{pr2}$LogLocator
,这次设置subs
选项来说明我们希望在每个十年中的哪个位置使用小记号。这里我没有在每0.1设置一个小刻度,因为它太窄了,所以只对一个子集进行设置。注意,如果像这样设置小刻度,还需要使用NullFormatter
关闭次要刻度的刻度标签。在从
NumPy
尝试logspace
作为这里给出起始指数和最后一个指数(10的幂次)以及其间的数据点数。如果打印上面的网格,将得到以下结果
^{pr2}$相关问题 更多 >
编程相关推荐