Можно ли поместить выражение уравнения рядом с его графическим представлением? - PullRequest
3 голосов
/ 16 ноября 2009

Возможно ли, что когда я нарисую функцию в Mathematica, она автоматически поместит рядом с ней свое уравнение (т.е. y = 2x) или даже какой-нибудь другой текст?

На первый взгляд я не могу найти никакой возможности для этого, но если есть такая, которую я хотел бы знать.

Спасибо

Ответы [ 3 ]

4 голосов
/ 16 ноября 2009

Одним из способов сделать это, которое автоматически связывает выражение со стилем, используемым для его построения, является использование стандартного дополнительного пакета PlotLegends. Вывод выглядит не очень хорошо по умолчанию; Я рекомендую установить параметр LegendShadow -> None и использовать Style в выражениях, которые вы вставляете в легенду, чтобы они выглядели лучше. Кроме того, загрузка пакета вызывает некоторые забавные переопределения для Plot и связанных функций, которые могут сломать некоторые другие вещи, если вы не будете осторожны.

4 голосов
/ 18 ноября 2009

Используя Mathematica 6 или выше, я часто использую Подсказка , чтобы помочь мне определить кривые графика:

Plot[Tooltip[Sin[x]], {x, 0, 8 Pi}]

Увы, это полезно только при интерактивном использовании графика, так как вы должны навести курсор мыши на кривую. Это не очень хорошо работает на бумаге или на статическом изображении.

Вы можете использовать опцию Epilog , чтобы вручную разместить текст на графике, как в этом примере:

Plot[
  Sin[x], {x, 0, 8 Pi},
  Epilog -> Text["My Text", Offset[{32, 0}, {14, Sin[14]}]]
]

Настроить аргументы Смещение по вкусу.

Это работает, если вы не против размещения вручную. Автоматическое размещение создает некоторые проблемы, в зависимости от видов функций, которые вы хотите построить. Но если вы что-то знаете об общих характеристиках интересующих функций, вы можете написать функцию, которая вычисляет приятные на вид значения для аргументов Offset . Например, если бы я знал, что собираюсь построить множество функций экспоненциального убывания, я мог бы определить что-то вроде функции myPlot в этом примере:

SetAttributes[myPlot, HoldAll]
myPlot[function_, {var_, min_, max_}] :=
  Plot[
    function, {var, min, max},
    Epilog -> Text[function, Offset[{40, 0}, {var, function} /. var -> min + (max - min)/20]],
    PlotRange -> All, AxesOrigin -> {0, 0}
  ]

... где аргументы Offset вычисляются автоматически с использованием некоторых произвольных констант, которые достаточно хорошо работают для графиков такого типа:

Manipulate[
  myPlot[1000 E^(-d t), {t, 0, 100}, "My Label"],
  {d, 0.01, .2}
]

Поскольку все эти опции являются программируемыми, предел неба в том, насколько изощренным вы могли бы кодировать размещение этикетки. Конечно, такое программирование все дальше отдаляется от идеала встроенной опции до График , который просто волшебным образом падает на какой-то текст рядом с функцией. Mathematica 8 или 9 может быть:)

2 голосов
/ 16 ноября 2009

«Вокруг его уравнения» проблема. Это непростая проблема, и она становится несколько невозможной, когда вы начинаете получать «занятые» графики с перекрывающимися графиками и т. Д.

У меня нет хорошего примера для показа, но обычно я определяю «функцию маркировки», которая принимает те же входные данные, что и отображаемая функция, которая помещает точку на график и пишет рядом текст. Преимущество этого заключается в возможности легко изменять местоположение текста, но при этом привязать его к функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...