如何在图形上绘制并获取两条相交线的坐标?

2024-04-26 01:06:29 发布

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

我有一个Python程序,目前只绘制了两行代码。我希望它看起来像第一张图片下面的图片,但现在它看起来像这样

Image of Graph without Intersection Points

Image of Graph with Intersection Points

我绘制图表的代码就在这里:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

data = pd.read_csv('data.csv')
data = data.sort_values(['time'])
x = np.array(data['time'])
y = np.array(data['amount'])

plt.plot(x, y, 'bo-')

z = np.polyfit(x, y, 1)
p = np.poly1d(z)

x_dense = np.linspace(x[0], x[-1], 500)
y_dense = np.interp(x_dense, x, y)

mask = y_dense < p(x_dense)
x_masked = np.ma.array(x_dense, mask=mask)

plt.title("Trend Time")
plt.plot(x_dense, p(x_dense), 'g-', lw=0.5)
plt.plot(x_masked, p(x_masked), 'r--', lw=2.25)
plt.fill_between(x_dense, p(x_dense), y_dense, where=~mask, color='crimson', alpha=0.2)

plt.show()

如何绘制这些交点