Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python matplotlib用线条绘制非连续数据_Python_List_Matplotlib - Fatal编程技术网

使用python matplotlib用线条绘制非连续数据

使用python matplotlib用线条绘制非连续数据,python,list,matplotlib,Python,List,Matplotlib,我需要使用matplotlib绘制数据,matplotlib是一个系列,但缺少一些值,因此它不是完全连续的。目前,数据以简单列表的形式显示,每个“N”值显示一个值,从15到40,因此有一个这些值的列表,作为x信息传递给plotting命令。数据作为y信息的列表传递,对于没有此集合数据的位置,当前拥有多个numpy.nan 我需要做的是如图所示绘制它,除了我需要忽略缺失的数据点和连接下一个数据点的线,例如,x=20处的红色圆圈应连接到x=35处的红色圆圈,并且两个标记由相同的plot命令绘制 该

我需要使用matplotlib绘制数据,matplotlib是一个系列,但缺少一些值,因此它不是完全连续的。目前,数据以简单列表的形式显示,每个“N”值显示一个值,从15到40,因此有一个这些值的列表,作为x信息传递给plotting命令。数据作为y信息的列表传递,对于没有此集合数据的位置,当前拥有多个numpy.nan

我需要做的是如图所示绘制它,除了我需要忽略缺失的数据点和连接下一个数据点的线,例如,x=20处的红色圆圈应连接到x=35处的红色圆圈,并且两个标记由相同的plot命令绘制

该代码需要绘制各种数据集,其中一些数据集在15时没有数据,但需要显示没有数据,即轴保持不变以清晰显示,系列连接以显示趋势

红色圆圈数据的示例数据:

[numpy.nan, 6.3, numpy.nan, numpy.nan, 8.4, numpy.nan]
[numpy.nan, 4.1, 4.3, numpy.nan, 5.8, nunmpy.nan]

fig = plt.figure(figsize=(16,9))
ax = fig.add_subplot(111)
ax.plot(plens, polyplot, linestyle='--', marker='^', markersize=7.0, color='red')
绿色圆圈数据的示例数据:

[numpy.nan, 6.3, numpy.nan, numpy.nan, 8.4, numpy.nan]
[numpy.nan, 4.1, 4.3, numpy.nan, 5.8, nunmpy.nan]

fig = plt.figure(figsize=(16,9))
ax = fig.add_subplot(111)
ax.plot(plens, polyplot, linestyle='--', marker='^', markersize=7.0, color='red')

我把多余的信息放在一边,例如颜色索引和标签,因为它们对问题并不重要。谢谢。

我要做的就是从域和打印值中删除这些元素,就像这样

我将使用
y
来表示可能在
polyplot
中的值,并将
x
用于您的域,在脚本中可能称为
plens

将numpy导入为np
x=np.数组([15,20,25,30,35,40])#从图像中获取
y=np.数组([np.nan,4.1,4.3,np.nan,5.8,np.nan])#红圈数据
y\u not\u nan\u inds=~np.isnan(y)
ax.plot(x[y\u not\u nan\u inds],y[y\u not\u nan\u inds],…)

在这里,我们将所有内容都做成numpy数组,找到有
y
值的位置,并在这些区域上绘制线。

这听起来很有希望,我忘了显示定义,plens只是一个列表,[15、20、25、30、35、40],所以我的最终数据polyplot也是一个包含6个值的列表,正如您所指定的。我来试一试,看看效果如何。听起来不错。只需将15放入
x
,我意识到其中只有5个值。这对我不起作用,我得到了一个非常奇怪的图,这些值都是错误的,它在0和1之间跳跃,所以我认为它在为~np.isnan绘制一个真值表。嗯--你确定你在策划
y[y\u not\u nan\u inds]
而不仅仅是
y\u not\u nan\u inds
?是的,我就是这么做的,在我发布哈后意识到,对不起。