PlotLegends замедляет работу Manipulate [] графиков - PullRequest
6 голосов
/ 19 ноября 2011

У меня есть короткая программа, настроенная для отображения трех графиков одной и той же функции с разными параметрами с помощью Манипуляции.Я хотел бы обозначить каждую функцию значением параметра.Моей отправной точкой было просто заставить легенду появиться вообще.Добавление PlotLegend к сюжету делает Mathematica необычайно медленным.

Мой код:

Needs["PlotLegends`"]
Manipulate[

 UemaxOverUe = ((VA/Vphs)^2 (2 p - 1) + 1 - Ves0/Vphs - 2)/((VA/Vphs)^2 - (1 - Ves0/Vphs));

 UemaxOverUe2 = ((VA/Vphs)^2 (2 p - 1) + 1 - Ves02/Vphs - 2)/((VA/Vphs)^2 - (1 - Ves02/Vphs));

 UemaxOverUe3 = ((VA/Vphs)^2 (2 p - 1) + 1 - Ves03/Vphs - 2)/((VA/Vphs)^2 - (1 - Ves03/Vphs));

 ListPlot[{
  Table[{Vphs/VA, 1/UemaxOverUe}, {Vphs, .001 VA, VA, .01 VA}], 
  Table[{Vphs/VA, 1/UemaxOverUe2}, {Vphs, .001 VA, VA, .01 VA}], 
  Table[{Vphs/VA, 1/UemaxOverUe3}, {Vphs, .001 VA, VA, .01 VA}]}, 
  AxesLabel -> {"Vphs/VA", "Ne/NeMax"}, Joined -> True(*,
  PlotLegend->{"Blah","Blarg","Word"}*)],

 {{p, 1}, 0, 5},
 {{Ves0, -2 VA}, -10 VA, 10 VA, .1 VA},
 {{Ves02, -2 VA}, -10 VA, 10 VA, .1 VA},
 {{Ves03, -2 VA}, -10 VA, 10 VA, .1 VA}
]

Раскомментирование PlotLegend должно воссоздать проблему.

Мои вопросы: Почему это происходит?
Что такоехорошее решение или обходной путь?

Ответы [ 2 ]

7 голосов
/ 19 ноября 2011

Проблема в том, что PlotLegend просто медленный.Это не имеет ничего общего с Manipulate.На моем ПК ListPlot занимает 0,013 с без легенды и 0,43 секунды, если добавляется легенда.

В качестве обходного пути вы можете использовать

ControlActive[{}, PlotLegend -> {"Blah", "Blarg", "Word"}]]

вместо PlotLegendпоказывать легенду только тогда, когда вы не перемещаете ползунки.

4 голосов
/ 19 ноября 2011

Альтернативой ответу Шёрда может быть восстановление легенды в виде Epilog, учитывая, что вы знаете, что у вас есть три серии для сюжета.

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