我想计算几个功能,包括ln(x)
在一个时间间隔为1至10。然而去,我想情节上的间隔x
不等x[-1, 10]
。到目前为止,我无法根据需要修改刻度线,标签跟随的是我的大小,ln(x)
而不是其x
自身的值:
axiss = np.linspace(-1,10,12)
x = np.linspace(-1, 10, 1002)
s = int(np.where(x == 1)[0])
fig, ax = plt.subplots()
ax.plot(np.log(x[s:-1]), label='ln(x)')
ax.plot(1/x[s:-1], label='1/x')
ax.plot(-1/(x[s:-1]**2), label='-1/x2')
ax.plot(2/(x[s:-1]**3), label='2/x3')
ax.legend()
ax.set_xlim(-100, 1000)
ax.set_xticklabels(axiss)
我该如何定义x轴的范围,而仅计算其中一部分的函数?
我试过了:
ax.plot(x, np.log(x[s:-1]), label='ln(x)')
但是我当然有个问题。
谢谢 !
ps:是的,我已经在网上搜索了实现方法,请问这是我的最后选择
您可以显式地将x和y列表都提供给matplotlib。这也避免了手动设置xtick标签的需要。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1, 10, 1001) # don't divide by 0.0
x_for_ln = np.linspace(0.001, 10, 1001)
fig, ax = plt.subplots()
ax.plot(x_for_ln, np.log(x_for_ln), label='ln(x)')
ax.plot(x, 1/x, label='1/x')
ax.plot(x, -1/(x**2), label='-1/x2')
ax.plot(x, 2/(x**3), label='2/x3')
ax.legend()
ax.set_ylim(-10, 10)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句