我试着在第二个y轴上排列我的曲线,但我不知道如何-有人有想法吗?
即
- 第一条蓝色曲线在第二轴上从0.01开始,
- 然后是从次轴上的0.1开始的橙子曲线
- 等等....谢谢
x1c 0d1x的数据
的
import matplotlib.pyplot as plt
import numpy as np
def calc_curve(x, y):
n = x / y
z = np.abs(n * x - y) * (1 - (x / y) * np.exp(-x / y)) + \
np.abs(x - y) * (x / y) * np.exp(-x / y)
return z
x_val = np.linspace(0.004, 0.4, 100)
# plot
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
z_val = np.zeros_like(x_val)
for ts in [0.01, 0.1, 0.2, 0.3]:
for c, tr in enumerate(x_val):
z_val[c] = calc_curve(ts, x_val[c])
ax1.plot(x_val, z_val, label="parameter: {0}".format(ts))
ax1.set_xlim(np.min(x_val), np.max(x_val))
#ax2.set_xlim(np.min(0.01), np.max(0.3))
ax1.legend()
plt.grid(True, which='both')
plt.show()
字符串
2条答案
按热度按时间z4iuyo4d1#
根据提供的代码,这是另一个答案:
字符串
输出
的数据
knpiaxh12#
你必须调整你的数据,在右边有所需的截距。也就是说,你必须添加一个常数到你的数据序列,使最后一个值等于你想要的值。我给予一个小例子,如何轻松实现这一点:
字符串
输出与预期的一样,直线
y1
的右轴截距为0.1,y2
的右轴截距为0.2。此外,请提供易于复制的示例,以便其他人可以直接深入研究您的问题