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