Python Matplotlib';cmap&x27;vs';c';问题

Python Matplotlib';cmap&x27;vs';c';问题,python,pandas,numpy,matplotlib,Python,Pandas,Numpy,Matplotlib,我想画一些阻抗值,任务和代码都很简单xhertz_df是一个数据帧,在转换成numpy数组后,xhertz[0]是实部,xhertz[1]是虚部,xhertz[3]表示测量之间的时间 def xhertz_plot(xhertz_df): ax = plt.gca() xhertz = xhertz_df.T.to_numpy() ax.plot(xhertz[3], xhertz[0], 'green') ax.plot(xhertz[3], xhertz[1]

我想画一些阻抗值,任务和代码都很简单
xhertz_df
是一个数据帧,在转换成numpy数组后,
xhertz[0]
是实部,
xhertz[1]
是虚部,
xhertz[3]
表示测量之间的时间

def xhertz_plot(xhertz_df):
    ax = plt.gca()
    xhertz = xhertz_df.T.to_numpy()
    ax.plot(xhertz[3], xhertz[0], 'green')
    ax.plot(xhertz[3], xhertz[1], 'blue')
    ax.scatter(xhertz[3], xhertz[0], cmap ='green')
    ax.scatter(xhertz[3], xhertz[1], cmap ='blue')
    ax.set_xlabel('Time Passed (in Minutes)')
    plt.show()
我很困惑这个代码会出什么问题,因为它看起来很简单。但我得到了这个结果:

上面的线和点是蓝色和绿色的混合,尽管它应该是绿色的。只有蓝色的下一行有橙色(?!)点。这是怎么回事

编辑:

我发现了问题:我使用
cmap
而不是
c
作为散点图。但是对于在这两个概念上都有专长的人来说:为什么我会得到上面所示的结果?例如,橙色从何而来?

如文件中所述:

Colormap
实例或注册的Colormap名称<仅当
c
是浮点数组时,才使用code>cmap

由于您没有为arg
c
提供浮动列表,matplotlib忽略了您的
cmap
,而是使用了第一和第二种默认颜色(蓝色,然后是橙色)

如果只需要单色,请注意
c
参数的文档:

如果希望为所有点指定单一颜色,请使用
color
关键字参数

或者,您可以将
Axes.plot
o
一起用于标记样式,而不是
scatter
,例如
ax.plot(x,y,'o',color='green')
或等效
ax.plot(x,y,'og')
。这对于简单的地块更为典型;可以使用
-
o
显式设置线图或标记图


请注意,
cmap
通常用于希望每个点具有不同颜色的情况,例如希望为点着色以表示数据的另一个维度。在这种情况下,
c
将表示数据的第三维,
norm
将缩放数据,
cmap
将是映射到该数据的颜色。有关该参数通常如何使用的示例,请参见from matplotlib。

蓝色和橙色是第一种和第二种默认颜色。它只是忽略/不解析
ax.plot
的第三个参数。您是指
ax.scatter
的参数,对吗?线条图的颜色正确。所以它所做的就是忽略
cmap='green'
参数?哦,你说得对,我把它们混在一起了。如文档中所述:“Colormap实例或注册的Colormap名称。仅当c是浮点数组时才使用cmap。”由于您没有为arg
c
提供浮点列表,因此忽略了
cmap
。另请注意文档中关于
c
参数的说明:“如果您希望为所有点指定单一颜色,请选择颜色关键字参数。”非常感谢,如果您将这两条注释复制粘贴在一起并作为答案给出,我将接受它并关闭问题。如果你不想对这样一个简单的问题给出一个“正确”的答案,我明白了。