какая программа для построения графиков может строить точки?

Начало изучения графиков и функций требует большого количества графиков. Поэтому я подумал о загрузке утилиты для рисования графиков, но в программе, которую я скачал, не было опции, позволяющей нам видеть нанесенные точки. Пример: лучший, который я мог найти, был Graph:

введите описание изображения здесь

сама документация по использованию графа содержит меньше информации. Я хотел бы, по крайней мере, визуализировать нанесенные точки на кривой или найти такие вещи, как вершины и другую важную информацию, без особых усилий с помощью утилиты. Есть ли какое-либо программное обеспечение с открытым исходным кодом, которое позволило бы мне это сделать? Или это функция, скрытая в «Графике» (программном обеспечении), о которой я не знаю? Я ищу платформу Windows (7), было бы лучше, если бы программное обеспечение было бесплатным или открытым исходным кодом, пожалуйста, укажите инструкции о том, как можно включить вышеупомянутые функции?

Вы хотите вручную вводить точки (стиль точечной диаграммы) или хотите ввести уравнение и заставить программу показать вам некоторые точки на функции?
@AndreaLazzarotto, да, это именно то, что я хотел сделать (последнее), заставить программу показывать некоторые точки введенной функции. Geogebra принятого ответа - это то, что мне понравилось, но я не знаю, как это сделать в нем.
Хорошо, ответ предоставлен. :)
@AndreaLazzarotto, большое спасибо, но кажется, что это интерфейс командной строки, на изучение которого может потребоваться время?
Не совсем только CLI: i.imgur.com/Relr5q1.png

Ответы (3)

ИМХО, другие ответы не совсем нацелены на вопрос: они больше сосредоточены на предложении (отличных) инструментов для построения точечных данных, а не на символических функциях.

Я хотел бы, по крайней мере, визуализировать нанесенные точки на кривой или найти такие вещи, как вершины и другую важную информацию, без особых усилий с помощью утилиты. Есть ли какое-либо программное обеспечение с открытым исходным кодом, которое позволило бы мне это сделать?

Я предлагаю вам попробовать Sage . С сайта:

SageMath — это бесплатная математическая программная система с открытым исходным кодом , распространяемая под лицензией GPL. Он основан на многих существующих пакетах с открытым исходным кодом: NumPy , SciPy , matplotlib , Sympy , Maxima , GAP , FLINT , R и многих других. Получите доступ к их объединенным возможностям через общий язык на основе Python или напрямую через интерфейсы или оболочки.

Миссия: Создание жизнеспособной бесплатной альтернативы Magma, Maple, Mathematica и Matlab с открытым исходным кодом .

Sage — один из лучших программных пакетов с открытым исходным кодом для работы с символьными функциями. Он работает на Linux и OS X, но нет родной версии для Windows. Пользователи Windows могут загрузить предварительно созданную виртуальную машину или использовать веб-приложение Sage Math Cloud . Базовые учетные записи с большим количеством аппаратных ресурсов бесплатны.

Постройте символьную функцию

Предполагая, что вы хотите построить:

пример формулы

Делать:

f(x) = sin(x)*cos(x/pi)
plot(f, (x, -5, 5))

Вы получите этот вывод:

пример основного вывода

Примечание: если вы хотите использовать другие символьные переменные, вам нужно сначала определить их, потому что only xявляется встроенным. Например:

var('y z a b c d')

Позвольте Sage показать вам некоторые моменты

Если вы хотите, чтобы Sage сэмплировал некоторые точки , вы можете сделать это следующим образом:

from sage.plot.plot import generate_plot_points

f(x) = sin(x)*cos(x/pi)
g = plot(f, (x, -5, 5))
points = generate_plot_points(f, (x, -5, 5))
h = line(points, markerfacecolor='gray', marker='o', markeredgewidth=0, linestyle="")

g+h

пример точек, выбранных Sage

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

Выберите точно нанесенные точки

Вы также можете взломать gобъект, чтобы получить первый (и единственный) примитив (типа Line) и получить доступ к данным:

f(x) = sin(x)*cos(x/pi)
g = plot(f, (x, -5, 5))
l = g[0]
points = zip(l.xdata, l.ydata)
h = line(points, markerfacecolor='gray', marker='o', markeredgewidth=0, linestyle="")

g+h

пример всех точек, используемых на графике

Вау, это много очков. :D

Решите, где разместить точки

Другой подход заключается в размещении точек там, где вы хотите. Например, вы можете отобразить точку через каждые 0,5 единицы по оси X:

f(x) = sin(x)*cos(x/pi)
g = plot(f, (x, -5, 5))
points = [(x, f(x)) for x in srange(-5, 5.1, 0.5)]
h = line(points, markerfacecolor='gray', marker='o', markeredgewidth=0, linestyle="")

g+h

точки, выбранные через фиксированные интервалы

Больше опций

Вы можете стать более привлекательным, если:

  • изменение цвета, толщины линии, типа маркера и т. д.
  • добавить textобъект в каждую точку с координатами
  • установить yminи ymaxограничить график, чтобы рисовать функции с очень высокими значениями

Возможности безграничны.

Проверьте следующие ссылки:

Сохранить сюжет

Еще кое-что. Если вы хотите сохранить фигуру, просто вызовите saveметод для любого объекта графика.

Например:

g.save("nice.png")
(g+h).save("wonderful.pdf")

Если вы просто играете с графикой, вы не ошибетесь, используя Gnuplot .

  • Бесплатно - бесплатно и с открытым исходным кодом
  • Маленький и портативный
  • Кроссплатформенный Linux, OS/2, MS Windows, OSX, VMS и многие другие платформы
  • интерактивное отображение экрана: кросс-платформенное (Qt, wxWidgets, x11) или зависящее от системы (MS Windows, OS/2)
  • прямой вывод в файл: postscript (включая eps), pdf, png, gif, jpeg, LaTeX, metafont, emf, svg, ...
  • форматы веб-отображения с возможностью мыши: HTML5, svg
  • Почти каждый график, который вы можете себе представить, включая разброс, гистограмму, 3D

С сайта

set samples 20
set isosamples 21
set xlabel "X axis"
set ylabel "Y axis"
set zlabel "Z " offset 1, 0
set view 60, 30, 0.85, 1.1
set key at screen 1.0, 0.9
set style textbox opaque noborder margins 0.5, 0.5

set title "contour plot"
set contour
splot x*y

введите описание изображения здесь

Вы также можете посмотреть:

  • ipython / jupyter + matplotlib , который позволит вам создавать графики на python из окна браузера , изменять параметры и т. д., а также создавать документацию по качеству публикации. Бесплатный, с открытым исходным кодом и кроссплатформенный

введите описание изображения здесь

  • R / jupyter делает то же самое для языка статистического программирования R. Бесплатный, с открытым исходным кодом и кросс-платформенный.

Наконец, взгляните на plot.ly , где вы можете создавать участки любым из способов (платно для частных участков).

Вы можете использовать GeoGebra :

введите описание изображения здесь

интерфейс похож на Graph
вместо того, чтобы вводить точки на графике (в моем случае только 2D), как мы можем сделать точки во введенном уравнении видимыми. Например, для уравнения прямой линии: 8x + 3y = 5 одной из точек, удовлетворяющих уравнению, может быть: (1, -1), как сделать такие точки видимыми на линии графика?