在一个图上结合对数和线性函数

时间:2018-09-12 20:58:53

标签: 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 and y must have same first dimension,却不知道如何为p和我的初始x生成相同数量的元素。

1 个答案:

答案 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)

输出

enter image description here