python matplotlib找到两个折线图的交点

亚当 Demo_Fighter

我已经将一些数据呈现到 matplotlib 图表中,它们是在某些点相交的两条线,我想获得相交线的坐标,xaxis 是一种日期格式,所以我想得到它。

在此处输入图片说明

我的代码:

macd = []
signals = []
elms = data['Technical Analysis: MACD'].values()

for i in data['Technical Analysis: MACD'].values():
    macd.insert(len(macd), i['MACD'])
    signals.insert(len(signals), i['MACD_Signal'])


macd = list(map(float, macd))
signals = list(map(float, signals))
dates = list(data['Technical Analysis: MACD'].keys())
rcParams['figure.figsize'] = (25, 12)
plt.plot(dates[:35], macd[:35])
plt.plot(dates[:35], signals[:35])
plt.gca().invert_xaxis()
print(macd[:35])
print(signals[:35])
print(dates[:35])
plt.show()

使用的数据:

macd = [1.6522, 1.609, 1.567, 1.6067, 1.7226, 2.0908, 2.0447, 1.9124, 1.8883, 1.7857, 1.9119, 2.0594, 2.178, 2.3221, 2.457, 2.5518, 2.6062, 2.7862, 2.9194, 3.2483, 3.5899, 3.9609, 3.9387, 3.9394, 3.9562, 4.0844, 4.2297, 4.5641, 4.895, 4.7674, 4.4558, 4.1092, 4.0209, 3.628, 3.4255]
signals = [1.7937, 1.829, 1.884, 1.9633, 2.0524, 2.1349, 2.1459, 2.1712, 2.2359, 2.3228, 2.4571, 2.5934, 2.7269, 2.8641, 2.9996, 3.1352, 3.2811, 3.4498, 3.6157, 3.7898, 3.9251, 4.0089, 4.0209, 4.0415, 4.0671, 4.0948, 4.0974, 4.0643, 3.9393, 3.7004, 3.4337, 3.1782, 2.9454, 2.6765, 2.4387]
dates = ['2021-08-25', '2021-08-24', '2021-08-23', '2021-08-20', '2021-08-19', '2021-08-18', '2021-08-17', '2021-08-16', '2021-08-13', '2021-08-12', '2021-08-11', '2021-08-10', '2021-08-09', '2021-08-06', '2021-08-05', '2021-08-04', '2021-08-03', '2021-08-02', '2021-07-30', '2021-07-29', '2021-07-28', '2021-07-27', '2021-07-26', '2021-07-23', '2021-07-22', '2021-07-21', '2021-07-20', '2021-07-19', '2021-07-16', '2021-07-15', '2021-07-14', '2021-07-13', '2021-07-12', '2021-07-09', '2021-07-08']

在上面的例子中,我们只有一个交叉点。

谢谢

和风

你可以计算的交叉点macd,并signals用:

idx = np.argwhere(np.diff(np.sign(np.array(macd)- np.array(signals)))).flatten()

idx 是一个交点索引列表,在你的情况下:

[25]
import matplotlib.pyplot as plt
from matplotlib import rcParams
import numpy as np


macd = [1.6522, 1.609, 1.567, 1.6067, 1.7226, 2.0908, 2.0447, 1.9124, 1.8883, 1.7857, 1.9119, 2.0594, 2.178, 2.3221, 2.457, 2.5518, 2.6062, 2.7862, 2.9194, 3.2483, 3.5899, 3.9609, 3.9387, 3.9394, 3.9562, 4.0844, 4.2297, 4.5641, 4.895, 4.7674, 4.4558, 4.1092, 4.0209, 3.628, 3.4255]
signals = [1.7937, 1.829, 1.884, 1.9633, 2.0524, 2.1349, 2.1459, 2.1712, 2.2359, 2.3228, 2.4571, 2.5934, 2.7269, 2.8641, 2.9996, 3.1352, 3.2811, 3.4498, 3.6157, 3.7898, 3.9251, 4.0089, 4.0209, 4.0415, 4.0671, 4.0948, 4.0974, 4.0643, 3.9393, 3.7004, 3.4337, 3.1782, 2.9454, 2.6765, 2.4387]
dates = ['2021-08-25', '2021-08-24', '2021-08-23', '2021-08-20', '2021-08-19', '2021-08-18', '2021-08-17', '2021-08-16', '2021-08-13', '2021-08-12', '2021-08-11', '2021-08-10', '2021-08-09', '2021-08-06', '2021-08-05', '2021-08-04', '2021-08-03', '2021-08-02', '2021-07-30', '2021-07-29', '2021-07-28', '2021-07-27', '2021-07-26', '2021-07-23', '2021-07-22', '2021-07-21', '2021-07-20', '2021-07-19', '2021-07-16', '2021-07-15', '2021-07-14', '2021-07-13', '2021-07-12', '2021-07-09', '2021-07-08']

idx = np.argwhere(np.diff(np.sign(np.array(macd)- np.array(signals)))).flatten()

rcParams['figure.figsize'] = (25, 12)
plt.plot(dates[:35], macd[:35])
plt.plot(dates[:35], signals[:35])
plt.plot(dates[idx[0]], macd[idx[0]], 'ko')
plt.gca().invert_xaxis()

plt.show()

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

图中两个系列/折线图的交点

我们如何在python的“ openpyxl”包中绘制两个系列的数据(折线图)

在Python中两个图的交点,找到x值

如何在Python中进行时间序列分析时结合两个折线图进行数据验证

Python matplotlib:多个折线图的数据标签

如何注释分组的破折线图Python Matplotlib

Python Matplotlib如何以每周间隔绘制折线图

python中的折线图

在python中绘制3个变量的折线图

Python-pptx折线图错误

嵌套字典到折线图-Python

在 pandas python 中处理折线图

使用bokeh流化两个折线图

Python Matplotlib-如何仅在折线图上注释y轴值?

在一个图中具有组的Python条形图和折线图

使用共同的y范围Python在同一图中创建2个折线图

Python Pandas xlsxriter 堆积折线图类型在Excel中设置标准折线图

python-两个大圆圈的交点(纬度/经度)

如何从两个不同的MySQL表中的两个变量绘制折线图

如何在折线图中的两个折线之间添加填充?

如何在折线图Python Matplotlib中为X轴设置所需的时间间隔和所需的格式?

Python-在matplotlib中绘制带有日期时间的折线图和带有NaN值的列

Python,pptx更改折线图中的线条颜色

如何使用python熊猫绘制多折线图?

Python Bokeh JSCallback,基于Select过滤折线图

如何在python中绘制“多线”折线图?

如何在Python中创建简单的折线图

嵌套字典到折线图 - Python 3

Python:折线图,用于按多列分组的值