简体   繁体   English

如何在Matplotlib图中提取特定点? (蟒蛇)

[英]How to extract specific points in Matplotlib graph? (python)

From an image, I have computed a mean value over each column and created a graph. 从图像中,我计算了每一列的平均值并创建了一个图形。 This is the output (without letters and marked points). 是输出(没有字母和标记点)。

图

Most graphs have a behavior like graphs marked with blue, green and red color. 大多数图形的行为类似于标有蓝色,绿色和红色的图形。 From those graphs, I would like to extract point C . 我想从这些图中提取点C。 But sometimes A is extracted instead of C. Therefore I would like to find an unambiguous solution. 但是有时会提取A而不是C。因此,我想找到一个明确的解决方案。

Idea: 理念:

  • The interval from A to B is always shorter than C to D. 从A到B的间隔总是比C到D短。

Problem: 问题:

  • I don't know how to extract point A, B, C. 我不知道如何提取点​​A,B,C。
  • Not all graphs are the same (example: light blue line). 并非所有图形都相同(例如:浅蓝色线)。 How to distinguish between them? 如何区分它们?

Edit #1 编辑#1

在此处输入图片说明

The light blue curve being completely different, I would start by detecting it. 浅蓝色曲线完全不同,我将从检测到它开始。 Fir that I would use three time points (50, 700 and 1400). 冷杉,我将使用三个时间点(50、700和1400)。 You see that the values |V50-V700|, |V700-V1400| 您会看到| V50-V700 |,| V700-V1400 | are completely different for the two types of curves (Blue green red versus light blue). 这两种曲线类型(蓝绿红与浅蓝)完全不同。

Then you can detect the A, B and C points. 然后,您可以检测到A,B和C点。 They are characterized by the important and sudden variations (so gradient). 它们的特征是重要且突然的变化(如此梯度)。 I would start by using a median filter in order to denoise a little bit your signals, and then I would compute the signal gradient. 我将首先使用中值滤波器来对您的信号进行降噪,然后再计算信号梯度。 A, B and C are going to be the three points with the biggest gradients. A,B和C将成为梯度最大的三个点。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM