Je trace environ 10 lignes dans la même intrigue et utilise l'option intégrée de plot
pour faire défiler les couleurs. Malheureusement, cette option n'a que 7 couleurs et recommence avec la première couleur. Existe-t-il une option comme dans Matlab pour obtenir un type de ligne différent, lorsque les couleurs passent par une seule fois? Je sais que je peux changer la couleur et le style de ligne manuellement pour chaque ligne, mais je préférerais une solution automatique.Scilab intrigue avec plusieurs lignes: style de LineSpec automatique creux de cyclisme
1
A
Répondre
0
Je ne connais pas de méthode intégrée pour cela, mais en lisant la page de manuel Linespec
, vous pouvez créer une fonction permettant de parcourir tous les spécificateurs.
Le plus simple d'entre eux étant:
function Linespec=CycleSpec(n)
// n : from 0 to N
Linestyle =['-';'--';':';'-.']
Linecolor = ['r';'g';'b';'c';'m';'y';'k';'w']
Linemarker =['';'+';'o';'*';'.';'x';'s';'d';'^';'v';'>';'<';'p']
i = modulo(n,size(Linecolor,'*'))+1
j = modulo(floor(n/size(Linecolor,'*')),size(Linestyle,'*'))+1
k = modulo(floor(n/size(Linecolor,'*')/size(Linestyle,'*')),size(Linemarker,'*'))+1
Linespec = Linestyle(j)+Linecolor(i)+Linemarker(k)
endfunction
qui pourrait être utilisé comme
figure(1)
for n=0:40
plot(x,x+n,CycleSpec(n))
end
Et si vous voulez vraiment quelque chose de simple, nous pouvons ajouter une variable globale stocker le compteur si vous avez seulement besoin pour appeler la fonction, pas besoin de paramètre
function Linespec=CycleSpec()
// n : from 0 to N
global CycleSpecCounter
if CycleSpecCounter==[] then
CycleSpecCounter = 0
end
n=CycleSpecCounter
[...] same code as before [...]
CycleSpecCounter=CycleSpecCounter+1
endfunction
et vous auriez seulement besoin de taper
plot(x,x+n,CycleSpec())