вот изображение, которое мне нужно наконец получитьI снимал фильм для кода, который я написал на C, используя gnuplot. Мне нужно установить много прямоугольников в окне в каждый момент времени (от x1, y1 до x2, y2), и у меня есть эти конфигурации в разных файлах .. config_00.txt, config_10.txt, config_20.txt, и т. д. В умножить на 0,10,20 и т. д., каждый из которых имеет 4 столбца x1, y1, x2, y2. Как я могу это сделать ?. Если бы в моем файле хранились только x и y, и если бы мне нужно было нарисовать только линию, я мог бы написать только «plot 'config_10.txt» .. Но здесь это не так .. Мне нужно сканировать каждую строку каждого файла и установить объекты в положениях, в которых говорится ... Я видел что-то вроде "call" в gnuplot ... но я не мог понять, пожалуйста, помогите ... Я могу написать программу для сканирования каждого файла (который сохраняет конфигурацию в разное время) и установить объекты ... затем сбросить снова установить из следующего файла, но это выглядит утомительно ... для построения точек данных в файле со столбцами x, y мы можем просто сказать plot "file.txt" u 1: 2 ... но я спрашивал есть ли что-то вроде "из файла_10.txt установить прямоугольник объекта от $ 1, $ 2 до $ 3, $ 4
После установки этих объектов, чтобы увидеть конфигурацию, которую я использовал для построения чего-то вроде plot 0 .. так что gnuplot показывает мне мою конфигурацию
Вы можете построить прямоугольник из одной строки ввода, используя стиль печати boxxyerror. Для строк данных, содержащих четыре числа x1, y1, x2, y2, описывающих два угла прямоугольника:
set style fill solid
plot 'data' using 1:2:1:3:2:4 with boxxy
Прямоугольник можно описать несколькими способами с помощью спецификатора using
. Эта команда показывает формат x: y: xlow: xhigh: ylow: yhigh. Если у вас много отдельных файлов данных и вы хотите, чтобы все они находились на одном графике, добавьте предложение итерации:
plot for [i=0:20] sprintf("config_%02d.txt", i) using 1:2:1:3:2:4 with boxxy
Спасибо, что поделились ... Могу я кое-что спросить ... пока я указываю xlow, xhigh, ylow и yhigh, почему я должен указывать x и y? есть ли что-нибудь вроде :: 1: 3: 2: 4?, оставив thw x, y?, хорошо, я сейчас проверю ..
Первоначально стиль графика был разработан для отображения точки с прямоугольной областью неопределенности вокруг нее. Тебе наплевать на суть, тебе просто нужна коробка. Но сам стиль сюжета по-прежнему ожидает координаты определенной точки внутри поля.
Итак, теперь он строится в цикле, но есть ли что-нибудь вроде unset для unplot? потому что мне нужно видеть только одну конфигурацию за раз ... следуя этому циклу, который вы указали, каждая конфигурация строится один за другим путем перекрытия, как я могу это сделать?
Ваш вопрос некорректно сформулирован. "set" и "unset" здесь не участвуют. Есть одна команда "plot", которая строит все, что вы ее кормите. Если вы скармливаете ему одну строку данных, вы получите график из одной строки данных. Если вы скармливаете ему 20 файлов данных, вы получите график всех 20 файлов данных.
Вы спрашиваете, как создать анимацию? Это совсем другой вопрос.
да, я делал симуляцию из этих сохраненных файлов конфигурации, "config_t_10.txt", "config_t_20.txt" и т. д., поэтому я рисую только один файл за раз
OK. Но в чем твой вопрос?
Видите ли, этот прямоугольник - моя частица, и у меня их много, которые движутся ... так что за один раз одна частица может находиться практически в одном месте ... но я получаю следы / путь также, когда я это делал. Но я смог сделать это, используя pipe прямо из моей программы, и я использовал set obj rect .. и я использовал unset object после каждого временного шага, чтобы сделать решетку пустой, чтобы поместить частицы в их новое положение.
См. Мой ответ stackoverflow.com/a/52511967/2604213, который я дал на ваш другой вопрос