子图中的自动颜色序列 - Matplotlib

时间:2018-03-28 12:27:44

标签: python matplotlib

我自动生成大量数字,每个数字有7个子图。 在每个子图中都有许多痕迹(一个子图中最多17个)。

Matplotlib在哪个序列中自动分配跟踪的颜色,因为我需要生成一个数字键。

即。如果我的代码中有一个包含四条痕迹的子图:

axarr[0, 0].plot(data for trace 1) #what would matlibplot color assignment be

axarr[0, 0].plot(data for trace 2) #what would matlibplot color assignment be

axarr[0, 0].plot(data for trace 3) #what would matlibplot color assignment be

axarr[0, 0].plot(data for trace 4) #what would matlibplot color assignment be

1 个答案:

答案 0 :(得分:0)

根据Matlb colorspec documentation,只有8种预定义颜色。

但是您可以自己轻松生成带颜色的矩阵,并通过索引选择它们以确保获得一致的颜色。

>> C=ones(17, 3) ./ [1:17]'

C =

    1.0000    1.0000    1.0000
    0.5000    0.5000    0.5000
    0.3333    0.3333    0.3333
    0.2500    0.2500    0.2500
    0.2000    0.2000    0.2000
    0.1667    0.1667    0.1667
    0.1429    0.1429    0.1429
    0.1250    0.1250    0.1250
    0.1111    0.1111    0.1111
    0.1000    0.1000    0.1000
    0.0909    0.0909    0.0909
    0.0833    0.0833    0.0833
    0.0769    0.0769    0.0769
    0.0714    0.0714    0.0714
    0.0667    0.0667    0.0667
    0.0625    0.0625    0.0625
    0.0588    0.0588    0.0588

>> C(1, :)

ans =

     1     1     1

>> C(17, :)

ans =

    0.0588    0.0588    0.0588

然后您可以将'Color', C[index, :]添加到绘图命令中,请参阅绘图的LineSpec参数