Предположим, что я пишу функцию черного ящика, которая численно вычисляет дорогостоящую комплекснозначную функцию, а затем возвращает действительную и мнимую часть.
fun[x_?InexactNumberQ] := Module[{f = Sin[x]}, {Re[f], Im[f]}]
Затем я могу использовать его в Plot, как обычно, но Plot не распознает, что функция возвращает пару, и окрашивает оба кривых одного цвета. Как сказать Mathematica, что указанная функция всегда возвращает вектор фиксированной длины? Или как этот стиль подходит к этому сюжету?
РЕДАКТИРОВАТЬ: Если попытки попытаться ответить на проблему, я думаю, что избежать двойного повторного просмотра возможно только в том случае, если стиль выполняется как постобработка полученной графики. Скорее всего, следующее не является надежным, но, похоже, это работает для моего примера:
gr = Plot[fun[x + I], {x, -1, 1}, ImageSize -> 250];
k = 1;
{gr, gr /. {el_Line :> {ColorData[1][k++], el}}}