如何在matplotlib中重叠图?

问题描述 投票:0回答:1

我想知道如何在matplotlib中重叠这两张图。一个是带点的图,另一个名为'trendlijn'的是一条直线。

我试过使用alpha,但没有用。有谁能给我一个建议吗?我在编程方面不是那么好,所以请你慢慢解释你所做的步骤,谢谢。

这是代码。

import matplotlib.pyplot as plt
from scipy.stats import linregress
import numpy as np
d01 = [200, 180, 160, 140, 120]
di1 = [122, 130, 143, 165, 204]

d02 = [200, 180, 160, 140, 120]
di2 = [78, 82, 85, 95, 107]

multiply_y = np.multiply(d01, di1)
print(multiply_y)

add_x = np.add(d01, di1)
print(add_x)

a, b, r, p, s_a = linregress(add_x, multiply_y)
print ('Richtingcoëfficent=' ,a ,'\n','Standaardafwijking van het gemiddelde=', s_a*3, '\n', 'Snijpunt Y-as=', b)
plt.plot([add_x[0],add_x[-1]],[a*add_x[0]+b,a*add_x[-1]+b], label='trendlijn')
plt.plot(add_x, multiply_y, 'o', label='Metingen')
plt.grid(b=None, which='major', axis='both')
plt.xlabel('$x = d0 + di$ ($m$)')
plt.ylabel('$y = d0*d1$ ($m$)')
plt.legend(loc='lower right')
python numpy matplotlib overlapping
1个回答
1
投票

add_x[0] 不是你列表中最小的数字,并且 add_x[-1] 不是最大的。所以你的代码并不能覆盖所有的数值范围。你可以使用 min(add_x)max(add_x) 而不是。

plt.plot([min(add_x), max(add_x)],[a*min(add_x)+b, a*max(add_x)+b], label='trendlijn')
© www.soinside.com 2019 - 2024. All rights reserved.