Ik heb een algemene {i, x, y} dimensionale matrix en ik wil alle “i” {x, y} matrices in één grafiek uitzetten . Hoe kan ik het doen op een manier dat ik nog steeds elke “i” de curve van de andere kan onderscheiden (ik bedoel het maken van curven met verschillende kleuren met behulp van plot).

Dit is een voorbeeld van een code die ik heb geschreven, maar aangezien ik de tabel gebruikte om een lus te maken, kon ik de curven “niet onderscheiden:

a = Table[Random[], {i, 1, 4}, {x, 1, 6}, {y, 1, 5}]; Show[Table[ aFxn = ListInterpolation[(Chop[a[[i + 1]]] - Chop[a[[i]]])]; Table[aFxn[\[Theta], \[Phi]], {\[Theta], 1, 6}, {\[Phi], 1, 5}]; Plot[Abs[aFxn[3, \[Phi]]], {\[Phi], 1, 5}, PlotLegends -> {Subscript[Ne, i]}, PlotRange -> All, AxesLabel -> {Ne, spinupcoefficient}], {i, 1, 3}]] 

Mijn echte matrices hebben hogere dimensies, dus ik kan Plot [niet gebruiken {}, {}, {}, ..] om de verschillende kleuren te creëren.

Ik zou het op prijs stellen als iemand me hiermee zou kunnen helpen.

Antwoord

Hier is een optie:

curves = Table[ aFxn = ListInterpolation[(Chop[a[[i + 1]]] - Chop[a[[i]]])]; Abs[aFxn[3, ϕ]] , {i, 1, 3}]; Plot[curves, {ϕ, 1, 5}, PlotLegends -> Table[Subscript[Ne, i], {i, 1, 3}]] 

voer de beschrijving van de afbeelding hier in

Een andere optie:

curve[i_] := ListInterpolation[(Chop[a[[i + 1]]] - Chop[a[[i]]])] Plot[Evaluate@Table[Abs[curve[i][3, ϕ]], {i, 1, 3}], {ϕ, 1, 5}, PlotLegends -> Table[Subscript[Ne, i], {i, 1, 3}]] 

zelfde afbeelding

Reacties

  • Bedankt , Ik denk dat ' is wat ik wil
  • Hoe moet ik de plotlegendes tonen voor verschillende kleuren die overeenkomen met verschillende i " s?
  • Ik wil iets zoals PlotLegends – > {Subscript [ Ne, i]}, corresponderend met elke i
  • plotlegenda toevoegen na {[ Phi], 1, 5} doesn ' werkt niet voor mij
  • @DelaramNematollahi Bijgewerkt antwoord met PlotLegends.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *