gpt4 book ai didi

python - matplotlib 散点图的颜色参数是 `c` ,但是 `color` 也可以;产品。差异。结果

转载 作者:太空狗 更新时间:2023-10-30 01:28:58 25 4
gpt4 key购买 nike

我在 matplotlib 的散点图中不小心使用了 color 而不是 c 作为颜色参数(c 在文档中列出`)它起作用了,但结果是不同的:默认情况下边缘颜色消失了。现在,我想知道这是否是期望的行为,以及它如何以及为何起作用......

enter image description here

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(nrows=2, ncols=2, figsize=(10,10))

samples = np.random.randn(30,2)

ax[0][0].scatter(samples[:,0], samples[:,1],
color='red',
label='color="red"')

ax[1][0].scatter(samples[:,0], samples[:,1],
c='red',
label='c="red"')

ax[0][1].scatter(samples[:,0], samples[:,1],
edgecolor='white',
c='red',
label='c="red", edgecolor="white"')

ax[1][1].scatter(samples[:,0], samples[:,1],
edgecolor='0',
c='1',
label='color="1.0", edgecolor="0"')

for row in ax:
for col in row:
col.legend(loc='upper left')

plt.show()

最佳答案

这不是错误,而是 IMO,matplotlib 的文档有点含糊。

标记的颜色,可以通过ccoloredgecolorfacecolor 来定义。

caxes.pyscatter()的源码中。这相当于 facecolor。使用c='r'时,edgecolor未定义,matplotlib.rcParams中的默认值生效,有默认值k(黑色)的值。

coloredgecolorfacecolor 被传递给 collection.Collection 对象 scatter() 返回。正如您将在源代码 collections.py 中看到的(set_color()set_edgecolor()set_facecolor() 方法),set_color() 基本上调用了 set_edgecolorset_facecolor,因此将这两个属性设置为相同的值。

我希望这些可以解释您在 OP 中描述的行为。在 c='red' 的情况下,边缘为黑色,表面颜色为红色。在 color=red 的情况下,面颜色和边颜色都是红色。

关于python - matplotlib 散点图的颜色参数是 `c` ,但是 `color` 也可以;产品。差异。结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24749215/

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