gpt4 book ai didi

python - 在 matplotlib 上的散点图中为每个系列设置不同的颜色

转载 作者:IT老高 更新时间:2023-10-28 12:29:12 28 4
gpt4 key购买 nike

假设我有三个数据集:

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)

Matplotlib graph with different colors

或者您可以使用 itertools.cycle 制作自己的颜色循环器,并指定要循环的颜色,使用 next 来获得所需的颜色。例如,有 3 种颜色:

import itertools

colors = itertools.cycle(["r", "b", "g"])
for y in ys:
plt.scatter(x, y, color=next(colors))

Matplotlib graph with only 3 colors

想一想,也许不使用 zip 和第一个更清洁:

colors = iter(cm.rainbow(np.linspace(0, 1, len(ys))))
for y in ys:
plt.scatter(x, y, color=next(colors))

关于python - 在 matplotlib 上的散点图中为每个系列设置不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236566/

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