Das Kombinieren von Plots in Mathematica liefert nicht das erwartete Ergebnis

  • Ich versuche 3 Funktionen zu kombinieren, die in einer Plot[] und 1 Funktion in einer ParametricPlot[] dargestellt sind. Meine Gleichungen lauten wie folgt:

     plota = Plot[{-2 x, -2 Sqrt[x], -2 x^(3/5)}, {x, 0, 1}, PlotLegend -> {"-2 x", "-2 \!\(\*SqrtBox[\(x\)]\)", "-2 \!\(\*SuperscriptBox[\(x\), \(3/5\)]\)"}]
    plotb = ParametricPlot[{2.4056 (u - Sin[u]), 2.4056 (Cos[u] - 1)}, {u,0, 1.40138}, PlotLegend -> {"Problem 3"}]
    Show[plota, plotb]
     

    Dies ist das Bild, das es gibt:

    Das Kombinieren von Plots in Mathematica liefert nicht das erwartete Ergebnis

    22 November 2011
    Caleb Jares
2 answers
  • Wie Yoda gesagt hat, ist PlotLegends schrecklich. Wenn Sie nichts dagegen haben, die Plotstile manuell einzustellen und später zu wiederholen, kann ShowLegend helfen.

      plota = Plot[{-2 x, -2 Sqrt[x], -2 x^(3/5)}, {x, 0, 1}, 
                  PlotStyle -> {{Red}, {Blue}, {Orange}}];
     plotb = ParametricPlot[{2.4056 (u - Sin[u]), 2.4056 (Cos[u] - 1)}, {u, 0, 1.40138}, 
                            PlotStyle -> {{Black}}];
     

    Und jetzt

     ShowLegend[Show[plota, plotb], 
              {{{Graphics[{Red, Line[{{0, 0}, {1, 0}}]}], Label1},          
                {Graphics[{Blue, Line[{{0, 0}, {1, 0}}]}], Label2},
                {Graphics[{Orange, Line[{{0, 0}, {1, 0}}]}], Label3}, 
                {Graphics[{Black, Line[{{0, 0}, {1, 0}}]}], Label4}},
               LegendSize -> {0.5, 0.5}, LegendPosition -> {0.5, -0.2}}]
     

    erhalten Sie Folgendes:

    Das Kombinieren von Plots in Mathematica liefert nicht das erwartete Ergebnis

    Sie können auch einige einfache Funktionen schreiben, um dies etwas weniger umständlich zu machen, wenn Sie sich häufig mit diesem Problem beschäftigen.

    22 November 2011
    bbtrb
  • Wie aus den anderen Antworten hervorgeht, ist der Schuldige PlotLegend. Manchmal ist es daher nützlich, eigene Plotlegenden zu rollen:

     plotStyle = {Red, Green, Blue};
    labls = {"a", "b", "Let's go"};
    f[i_, s_] := {Graphics[{plotStyle[[i]], Line[{{0, 0}, {1, 0}}]}, 
        ImageSize -> {15, 10}], Style[labls[[i]], s]};
    
    Plot[{Sin[x], Sin[2 x], Sin[3 x]}, {x, 0, 2 Pi}, 
     PlotStyle -> plotStyle,
     Epilog ->
      Inset[Framed[Style@Column[{Grid[Table[f[i, 15], {i, 1, 3}]]}]],
       Offset[{-2, -2}, Scaled[{1, 1}]], {Right, Top}],
     PlotRangePadding -> 1
     ]
     

    Das Kombinieren von Plots in Mathematica liefert nicht das erwartete Ergebnis

    22 November 2011
    Dr. belisarius