Python散点图不适用于;无”;要点

Python散点图不适用于;无”;要点,python,list,scatter-plot,Python,List,Scatter Plot,假设我创建三个列表: x=[1,2,3] y=[4,5,6] z=[1,None,4] 我如何分散这一点,只包括带有数字的点(即排除“无”点)。当我包含这些列表时,我的代码不会生成散点图(但是当我包含一个数字而不是“无”时,它会工作): 你能行 import numpy as np 并将您的None替换为np.nan。包含np.nan的点不会绘制在散点图中。有关更多信息,请参阅 如果您有包含无的长列表,您可以通过 array_containing_nans = np.array(list_c

假设我创建三个列表:

x=[1,2,3]
y=[4,5,6]
z=[1,None,4]
我如何分散这一点,只包括带有数字的点(即排除“无”点)。当我包含这些列表时,我的代码不会生成散点图(但是当我包含一个数字而不是“无”时,它会工作):

你能行

import numpy as np
并将您的
None
替换为
np.nan
。包含
np.nan
的点不会绘制在散点图中。有关更多信息,请参阅

如果您有包含
无的长列表
,您可以通过

array_containing_nans = np.array(list_containing_nones, dtype=float)

您可以使用
numpy.nan
而不是
None

import numpy as np
z=[1,None,4]
z_numpy = np.asarray(z, dtype=np.float32)

.... 

ax.scatter(x, y, z_numpy, c='r', marker='o')

您应该使用
NaNs
,而不是
None
,这是不同的。一个
NaN
是一个浮点数

最小示例

import numpy as np
import matplotlib.pyplot as plt

x=[1,2,3]
y=[4,5,6]
z=[1,np.nan,4]

plt.scatter(x,y,z)
plt.show()

我想这取决于您希望如何处理3D绘图中的2D点,但排除None点的简单解决方案是用np.nan替换None值。或者,您可能希望保留所有3个点,在这种情况下,您可以将其替换为0
import numpy as np
import matplotlib.pyplot as plt

x=[1,2,3]
y=[4,5,6]
z=[1,np.nan,4]

plt.scatter(x,y,z)
plt.show()