Я не уверен, правильно ли я интерпретирую ваш второй вопрос, но при условии, что вам требуется список (x, y) точек из сгенерированного ContourPlot, один из способов сделать это может быть следующим:
plot = ContourPlot[
x^3 + x*y + y^2 - 36 == 0, {x, -2 Pi, 2 Pi}, {y, -3 Pi, 3 Pi}]
Для получения списка баллов
points = Cases[Normal@plot, x_Line :> First@x, Infinity];
«Взгляните» с ListPlot
ListPlot[points, PlotRange -> {{-2 Pi, 2 Pi}, {-3 Pi, 3 Pi}}]
1010 * дает *
Редактировать
Насер правильно указал, что этот вопрос уже рассматривался ранее. Здесь - это одна ссылка, по сути, на тот же вопрос, и этот ответ от Szabolcs является актуальным.
Что касается ответа, приведенного выше, этот метод , вероятно, более прямой:
points2 = Cases[plot, x_GraphicsComplex :> First@x, Infinity]
Наконец, я должен признать «LunchTime Playground. Fun с Mathematica: Как извлечь точки из графика», см. здесь , что дает оба метода, предложенных выше (и которые я сейчас пользуюсь рутинно).
Редактировать 2
Этот метод является усовершенствованием вышеописанного метода 1, поскольку точки получаются в виде списка значений {x, y} (list-of-lists) без каких-либо посторонних {}.
Cases[Normal@plot, Line[{x__}] :> x, Infinity]
Статья Пола Эбботта в Mathematica Journal, том 7, № 2, с. 108-112, 1998,
Поиск корней в интервале , дает много полезной информации и доступен здесь
Он указывает на следующее также работают
Cases[Normal@plot, _Line, -1][[1, 1]]
и (!)
plot[[1, 1]]
Я сделал ссылку в комментариях на вопрос от FreshApple, где можно найти (небольшой вариант) следующего метода:
InputForm[plot][[1, 1, 1]]
Следующее оценивается как True
plot[[1, 1]] == Cases[Normal@plot, Line[{x__}] :> x, Infinity] ==
InputForm[plot][[1, 1, 1]] == Cases[Normal@plot, _Line, -1][[1, 1]]
Редактировать 3
Просто или весело ...
ListPlot@ContourPlot[x^2 + y^2 == 1, {x, -1, 1}, {y, -1, 1}][[1, 1]]
дает