如何在matplotlib中重叠绘图?

2024-10-02 08:23:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何在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')

Tags: importaddplotmatplotlibasnppltlabel
1条回答
网友
1楼 · 发布于 2024-10-02 08:23:52

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')

相关问题 更多 >

    热门问题