我想在我的图上同时拥有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 and y must have same first dimension
,却不知道如何为p
和我的初始x
生成相同数量的元素。
答案 0 :(得分:0)
您不需要映射任何内容。利用矢量化操作。以下是一个最小的工作答案。我使用的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)
输出