Python 在一个图上组合对数和线性函数
我想在我的图上同时有y=log((x+1)/(x-1))[-1;1]和另一个线性函数。两个函数共享相同的Python 在一个图上组合对数和线性函数,python,matplotlib,Python,Matplotlib,我想在我的图上同时有y=log((x+1)/(x-1))[-1;1]和另一个线性函数。两个函数共享相同的x值。我将第二个函数的y值存储在一个数组中。到目前为止,我已经尝试过: import numpy as np p = np.log((x+1)/(x-1)) plt.plot(arrayX, p,'go--') plt.plot(arrayX, arrayY) plt.show() 但是我一直得到ValueError:x和y必须具有相同的第一维度,并且不知道如何为p和我的初始x生成相同数量的
x
值。我将第二个函数的y
值存储在一个数组中。到目前为止,我已经尝试过:
import numpy as np
p = np.log((x+1)/(x-1))
plt.plot(arrayX, p,'go--')
plt.plot(arrayX, arrayY)
plt.show()
但是我一直得到
ValueError:x和y必须具有相同的第一维度,并且不知道如何为p
和我的初始x
生成相同数量的元素。你不需要映射任何东西。使用矢量化操作。下面是一个最低限度的工作答案。我使用不同的x范围,因为当x接近-1和1时,你的对数函数有一条渐近线
fig = plt.figure(figsize=(7, 5))
# Define input
x=np.linspace(1.1, 2, 100)
y1 = x**2
y2 = np.log((x+1)/(x-1))
# Plot
plt.plot(x, y1, '-k', label = r'$y=x^2$')
plt.plot(x, y2, '-g', label = r'$y=\ln((x+1)/(x-1))$')
plt.legend(fontsize=18)
输出
您似乎会尝试plt.plot(x,p,'go--')
。但是如果没有一个.As ImportanceOfBeingErnest注释,或者p=np.log((x+1)/(x-1))
应该是p=np.log((arrayX+1)/(arrayX-1))的错误,我们就不能肯定了。