每次创建打印时生成不同的随机颜色

2024-09-30 18:16:46 发布

您现在位置:Python中文网/ 问答频道 /正文

X=[22,33,55,66,77,55,66,77,44,66,33] Y=[2,6,9,9,10,5,32,19,123,46,93]

列表=[0,1,2,3,4,0,5,6,7,0,8,9,10,0]

x和y是cordinate 列表表示算法输出序列

使用列表,我需要绘制不同的颜色,在本例中: 1,2,3,4——颜色 5、6、7——颜色B 8、9、10——彩色 或 一条连接路径的线: 0,1,2,3,4,0——线性 0,5,6,7,0--行B 0,8,9,10,0--行C

我试过这个密码

Xsolution = []
Ysolution = []

for i in range(len(list)): 
    Xsolution.append(X[list[i]])
    Ysolution.append(Y[list[i]])
    if list[i] == 0 :
         plt.scatter(Xsolution, Ysolution, color=random_color())
         Xsolution = []
         Ysolution = []

我需要一个函数,每当list[I]为0时生成一个随机颜色


Tags: 路径算法列表颜色绘制序列线性list
1条回答
网友
1楼 · 发布于 2024-09-30 18:16:46
import matplotlib.pyplot as plt
from random import randint
import numpy as np

Xsolution = []
Ysolution = []

alist = #list of values

for i in range(len(alist)): 
    Xsolution.append(X[alist[i]])
    Ysolution.append(Y[alist[i]])

labels = range(1,len(alist)+1)
i = 0
fig = plt.figure()
ax = fig.add_subplot(111)
for x,y in zip(Xsolution,Ysolution):
    ax.scatter(x,y,label=labels[i])
    if # reached the zero element
        i = i + 1 #change the label

#Now this is actually the code that you need, an easy fix to cut and paste.
colormap = plt.cm.gist_ncar #nipy_spectral, Set1,Paired  
colorst = [colormap(i) for i in np.linspace(0, 0.9,len(ax.collections))]       
for t,j1 in enumerate(ax.collections):
     j1.set_color(colorst[t])


plt.show()

我从网上取了这个,然后把它改成我需要的

相关问题 更多 >