2017-09-26 4 views
1

J'ai le code qui ressemble à ceciComment ajouter des légendes pour plusieurs parcelles dans mathematica?

gx = n * k0 * (1 - ((n/a)^ beta) 
    Show[ 
    Plot[gx /. {k0 -> 0.5, beta -> 5, n -> 9, a -> 1}, {n, 0, 12}, PlotRange -> {{0, 12}, {0, 5}}, PlotLabels -> {"r0 = 0.5"}], 
    Plot[gx /. {k0 -> 0.5, beta -> 0.5, n -> 9, a -> 1}, {n, 0, 12}, PlotRange -> {{0, 12}, {0, 5}}, PlotLabels -> {"r0 = 0.8"}] 
     ] 

Cependant, je reçois les étiquettes l'un sur l'autre et ne sont pas étiquetés distinctement.

Sinon, j'ai essayé utilisé légendes

Show[ 
Plot[gx /. {k0 -> 0.5, beta -> 5, n -> 9, a -> 1}, {n, 0, 12}, PlotRange -> {{0, 12}, {0, 5}}], 
Plot[gx /. {k0 -> 0.5, beta -> 0.5, n -> 9, a -> 1}, {n, 0, 12}, PlotRange -> {{0, 12}, {0, 5}}], 
PlotLegends -> {"beta = 5", "beta=0.5"} 
    ] 

Pour que je reçois une erreur qui dit ne pouvait pas combiner des objets graphiques dans Afficher

Toutes les suggestions sur la façon dont je peux travailler sur ces?

Répondre

1

Trois variantes illustrées ici.

gx = n*k0*(1 - ((n/a)^beta)); 

Show[ 
Plot[gx /. {k0 -> 0.5, beta -> 5, n -> 9, a -> 1}, {n, 0, 12}, 
    PlotRange -> {{0, 12}, Automatic}, PlotLabels -> {"beta = 5"}], 
Plot[gx /. {k0 -> 0.5, beta -> 0.5, n -> 9, a -> 1}, {n, 0, 12}, 
    PlotRange -> {{0, 12}, Automatic}, PlotLabels -> {"beta=0.5"}]] 

enter image description here

Plot[ 
{gx /. {k0 -> 0.5, beta -> 5, n -> 9, a -> 1}, 
    gx /. {k0 -> 0.5, beta -> 0.5, n -> 9, a -> 1}}, 
{n, 0, 12}, PlotRange -> {{0, 12}, Automatic}, 
PlotLegends -> {"beta = 5", "beta=0.5"}] 

enter image description here

Legended[Show[ 
    Plot[gx /. {k0 -> 0.5, beta -> 5, n -> 9, a -> 1}, {n, 0, 12}, 
    PlotStyle -> ColorData[97][1], PlotRange -> {{0, 12}, Automatic}], 
    Plot[gx /. {k0 -> 0.5, beta -> 0.5, n -> 9, a -> 1}, {n, 0, 12}, 
    PlotStyle -> ColorData[97][2], PlotRange -> {{0, 12}, Automatic}]], 
LineLegend[ColorData[97] /@ {1, 2}, {"beta = 5", "beta=0.5"}]] 

enter image description here