假设我有三个数据集:
X = [1,2,3,4] Y1 = [4,8,12,16] Y2 = [1,4,9,16]
我可以散点图:
from matplotlib import pyplot as plt plt.scatter(X,Y1,color='red') plt.scatter(X,Y2,color='blue') plt.show()
我怎样才能用 10 套做到这一点?
我搜索了这个,可以找到任何关于我所问内容的参考。
编辑:澄清(希望)我的问题
如果我多次调用 scatter ,我只能在每个 scatter 上设置相同的颜色。另外,我知道我可以手动设置颜色数组,但我确信有更好的方法来做到这一点。我的问题是,“我怎样才能自动散点图我的几个数据集,每个数据集都有不同的颜色。
如果这有帮助,我可以轻松地为每个数据集分配一个唯一编号。
我不知道您所说的“手动”是什么意思。您可以选择颜色图并轻松制作颜色数组:
import numpy as np import matplotlib.pyplot as plt import matplotlib.cm as cm x = np.arange(10) ys = [i+x+(i*x)**2 for i in range(10)] colors = cm.rainbow(np.linspace(0, 1, len(ys))) for y, c in zip(ys, colors): plt.scatter(x, y, color=c)
itertools.cycle或者,您可以使用并指定要循环的颜色来制作自己的颜色循环器,next以获取所需的颜色。例如,有 3 种颜色:
itertools.cycle
next
import itertools colors = itertools.cycle(["r", "b", "g"]) for y in ys: plt.scatter(x, y, color=next(colors))
想一想,也许不zip与第一个一起使用更清洁:
zip
colors = iter(cm.rainbow(np.linspace(0, 1, len(ys)))) for y in ys: plt.scatter(x, y, color=next(colors))