pandas plot了一条曲线,在曲线上找到各种转折点
时间: 2024-03-19 07:45:19 浏览: 160
你可以使用`pandas`的`diff`函数来计算每个相邻元素之间的差异,并使用`numpy`的`sign`函数来计算每个差异的正负号。然后,你可以使用`pandas`的`shift`函数来比较相邻元素的符号,以找到曲线上的转折点。
例如,假设你有一个数据框`df`,其中包含一个名为`value`的列,你可以使用以下代码来找到曲线上的转折点:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 创建一个示例数据框
df = pd.DataFrame({'value': [1, 3, 2, 5, 4, 7, 6, 4, 2, 1]})
# 计算相邻元素之间的差异,并计算每个差异的正负号
diff = np.sign(df['value'].diff())
# 找到所有转折点的位置
turning_points = diff.shift(1) != diff
turning_points.iloc[0] = False
# 在图表中标记转折点
plt.plot(df['value'])
plt.plot(df.loc[turning_points, 'value'], 'ro')
plt.show()
```
这里,我们使用`diff`函数计算相邻元素之间的差异,并使用`sign`函数计算每个差异的正负号。然后,我们使用`shift`函数比较相邻元素的符号,以找到曲线上的转折点。最后,我们在图表中标记转折点。
阅读全文