Как пометить разные кривые в Mathematica?
Как я могу пометить каждую из этих строк отдельно:
Plot[{{5 + 2 x}, {6 + x}}, {x, 0, 10}]
3 ответа
Есть некоторый хороший код, который позволяет вам сделать это динамически в ответ на Как аннотировать несколько наборов данных в ListPlots.
Там также есть LabelPlot
команда, определенная в Технической ноте Маркировка кривых на графиках
Конечно, если у вас не слишком много изображений для создания, то нетрудно вручную добавить метки в Epilog
, например
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}]]
На самом деле, вы можете сделать что-то подобное с Locators
это позволяет вам перемещать метки куда угодно:
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}]]]
В вышеупомянутом я сделал локаторы в виде меток, хотя также возможно сохранить Epilog
как это выше и имеют невидимые локаторы, которые контролируют позиции. Локаторы также могут быть ограничены (используя 2-й аргумент Dynamic
) к соответствующим кривым... но это не совсем необходимо.
В качестве примера приведенного выше кода с функциями с метками, перемещаемыми вручную:
fns[x_] := {Log[x], Exp[x], Sin[x], Cos[x]};
Mathematica 9 теперь предоставляет простые способы включения легенд.
Plot[{{5 + 2 x}, {6 + x}}, {x, 0, 10}, PlotLegends -> "Expressions"]
Вы можете вставить легенды в свой сюжет, загрузив PlotLegends
пакет
<<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]
Тем не менее, позвольте мне также отметить мою неприязнь к этому пакету, в первую очередь потому, что он крайне нелогичен, перегружен слишком большим количеством опций и не обеспечивает чистого опыта прямо из коробки, как большинство функций Mathematica. У вас будет немного повозиться с вариантами, чтобы получить то, что вы хотите. Однако на графиках и диаграммах, где вам нужна легенда, это может быть удобно. Также см. Комментарии к этому ответу и этому вопросу.