plt.scatter()是冗余函数吗?

时间:2019-08-20 15:26:09

标签: python python-3.x matplotlib plot scatter

我试图找到我只能用plt.scatter做的事情,而plt.plot无法做到,但是使用Line2D args和其他所有东西,在我看来plt.scatter基本上是无用的。在尝试编写具有某些用户指定首选项的自动绘图脚本后,我遇到了这个难题。最初,如果用户只需要标记,行或两者都使用,则似乎必须同时使用plot()和scatter()和if条件。但这根本没有必要。我知道这是一个开放式问题,但是现在不应该将分散视为不推荐使用的函数吗?它所做的只是具有不同的默认打印模式。我不要线,我可以设置linewidth = 0,对吧?

1 个答案:

答案 0 :(得分:0)

如果您要使用一组 单个 单色 标记,可以,使用plt.plot(x,y, linestyle="none")而不是plt.scatter(x,y)。在这种情况下,plt.plot的效率也会更高。

但是,如果您想 将信息编码为一组标记的大小或颜色 ,则需要使用plt.scatter(x, y, s=sizes, c=colors)。例如:

import numpy as np
import matplotlib.pyplot as plt

x, y, c, s = np.random.rand(4, 40)
s = s * 100 + 5

fig, ax = plt.subplots()
sc = ax.scatter(x, y, s=s, c=c)
fig.colorbar(sc)

ax.legend(*sc.legend_elements("sizes"), loc="upper left")

plt.show()

enter image description here