Jak oznakować różne krzywe w Mathematica?
Jak mogę oznaczyć każdą z tych linii osobno:
Plot[{{5 + 2 x}, {6 + x}}, {x, 0, 10}]
3 answers
Jest jakiś ładny kod, który pozwala to zrobić dynamicznie w odpowiedź do Jak adnotować wiele zestawów danych w ListPlots .
Istnieje również polecenie LabelPlot
zdefiniowane w uwadze technicznej znakowanie krzywych w wykresach
Oczywiście, jeśli nie masz zbyt wielu obrazów do zrobienia,
wtedy nie jest trudno ręcznie dodać etykiety w using Epilog
, na przykład
fns[x_] := {5 + 2 x, 6 + x};
len := Length[fns[x]];
Plot[Evaluate[fns[x]], {x, 0, 10},
Epilog -> Table[Inset[
Framed[DisplayForm[fns[x][[i]]], RoundingRadius -> 5],
{5, fns[5][[i]]}, Background -> White], {i, len}]]
W rzeczywistości, można zrobić coś podobnego z Locators
który pozwala na przenoszenie etykiet w dowolne miejsce:
DynamicModule[{pos = Table[{1, fns[1][[i]]}, {i, len}]},
LocatorPane[Dynamic[pos], Plot[Evaluate[fns[x]], {x, 0, 10}],
Appearance -> Table[Framed[Text@TraditionalForm[fns[x][[i]]],
RoundingRadius -> 5, Background -> White], {i, len}]]]
W powyższym zrobiłem lokalizatory w formie etykiet, chociaż możliwe jest również utrzymanie Epilog
Jak powyżej i mieć niewidoczne lokalizatory, które kontrolują pozycje.
Lokalizatory mogą być również ograniczone (używając drugiego argumentu Dynamic
) do odpowiednich krzywych... ale to nie jest konieczne.
Jako przykład powyższego kodu Z FUNKCJAMI z etykietami przesuwanymi przez ręka:
fns[x_] := {Log[x], Exp[x], Sin[x], Cos[x]};
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:09:40
Mathematica 9 zapewnia teraz łatwe sposoby dołączania Legend.
Plot[{{5 + 2 x}, {6 + x}}, {x, 0, 10}, PlotLegends -> "Expressions"]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-24 03:51:49
Możesz wstawić legendy do wykresu ładując PlotLegends
pakiet
<<PlotLegends`;
Plot[{5+2 x,6+x},{x,0,10},
PlotLegend->{"5+2x","6+x"},LegendShadow->None,
LegendPosition->{0.3,-0.5},LegendSpacing->-0,LegendSize->0.5]
Pozwolę sobie jednak zwrócić uwagę na moją niechęć do tego pakietu, przede wszystkim dlatego, że jest niezwykle nieprzewidywalny, obciążony zbyt wieloma opcjami i nie zapewnia czystego doświadczenia od razu po wyjęciu z pudełka, jak większość funkcji Mathematica. Będziesz musiał trochę bawić się z opcjami, aby uzyskać to, czego chcesz. Jednak na wykresach i wykresach, gdzie chcesz legendę, może to być poręczne. Zobacz także komentarze do tej odpowiedzi i tego pytania .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:51