gpt4 book ai didi

matplotlib - 如何在功能不连续的地方掉线

转载 作者:行者123 更新时间:2023-12-04 00:42:38 29 4
gpt4 key购买 nike

我正在绘制一些具有多个不连续性的函数。每个功能均以列表形式给出。我只想在功能连续的地方用线连接点。

这是绘图正在执行的简化示例。

x=linspace(0,1,100)    
y=zeros(100)
y[x<0.5] = x[x<0.5]
y[x>=0.5] = 1 + x[x>=0.5]
plot(x, y, '-o')


在x = 0.5处存在不连续性,但无论如何,图都将所有点与线连接起来。

我的功能当然不同。他们通常在不同的地方有几个不连续的地方。不连续性的标准很简单。假设,如果函数跳跃超过0.5,则我认为该函数在该点是不连续的。

绘图中是否有一个选项可以告诉它删除功能不连续的点之间的连接线?我记得可以使用gnuplot轻松做到这一点。

最佳答案

使用nan将行分成多个段:

import numpy as np
from pylab import *
x=linspace(0,1,100)
y=zeros(100)
y[x<0.5] = x[x<0.5]
y[x>=0.5] = 1 + x[x>=0.5]

pos = np.where(np.abs(np.diff(y)) >= 0.5)[0]

x[pos] = np.nan
y[pos] = np.nan

plot(x, y, '-o')


编辑:

在不连续处插入nan:

pos = np.where(np.abs(np.diff(y)) >= 0.5)[0]+1
x = np.insert(x, pos, np.nan)
y = np.insert(y, pos, np.nan)

关于matplotlib - 如何在功能不连续的地方掉线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10377593/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com