1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python 散点图 不同颜色_在matplotlib上的散点图中为每个系列设置不同的颜色

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

时间:2021-12-03 01:22:43

相关推荐

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

在matplotlib中用不同颜色的点绘制图的正常方法是传递颜色列表作为参数。

例如:

import matplotlib.pyplot

matplotlib.pyplot.scatter([1,2,3],[4,5,6],color=['red','green','blue'])

当您有一个列表列表时,您希望每个列表都带有颜色。我认为最优雅的方法是@DSM建议,只需做一个循环进行多次调用即可分散。

但是,如果由于某种原因您只想打一个电话,就可以制作一个大的颜色列表,并具有列表理解力和一些地板分割:

import matplotlib

import numpy as np

X = [1,2,3,4]

Ys = np.array([[4,8,12,16],

[1,4,9,16],

[17, 10, 13, 18],

[9, 10, 18, 11],

[4, 15, 17, 6],

[7, 10, 8, 7],

[9, 0, 10, 11],

[14, 1, 15, 5],

[8, 15, 9, 14],

[20, 7, 1, 5]])

nCols = len(X)

nRows = Ys.shape[0]

colors = matplotlib.cm.rainbow(np.linspace(0, 1, len(Ys)))

cs = [colors[i//len(X)] for i in range(len(Ys)*len(X))] #could be done with numpy's repmat

Xs=X*nRows #use list multiplication for repetition

matplotlib.pyplot.scatter(Xs,Ys.flatten(),color=cs)

cs = [array([ 0.5, 0. , 1. , 1. ]),

array([ 0.5, 0. , 1. , 1. ]),

array([ 0.5, 0. , 1. , 1. ]),

array([ 0.5, 0. , 1. , 1. ]),

array([ 0.28039216, 0.33815827, 0.98516223, 1. ]),

array([ 0.28039216, 0.33815827, 0.98516223, 1. ]),

array([ 0.28039216, 0.33815827, 0.98516223, 1. ]),

array([ 0.28039216, 0.33815827, 0.98516223, 1. ]),

...

array([ 1.00000000e+00, 1.22464680e-16, 6.12323400e-17,

1.00000000e+00]),

array([ 1.00000000e+00, 1.22464680e-16, 6.12323400e-17,

1.00000000e+00]),

array([ 1.00000000e+00, 1.22464680e-16, 6.12323400e-17,

1.00000000e+00]),

array([ 1.00000000e+00, 1.22464680e-16, 6.12323400e-17,

1.00000000e+00])]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。