В старые времена, если бы у кого-то был научный график, читатели имели бы доступ только к растровому изображению. Поэтому, если вы хотите получить необработанные данные с графика, вы можете использовать что-то вроде DataThief или Webplotdigitizer для растрового изображения, подобного приведенному ниже.
В наши дни научные публикации обычно требуют от авторов предоставления графиков в векторном формате (pdf или eps). Это означает, что вы можете напрямую открыть график в иллюстраторе и увидеть отображаемые данные (обычно как какой-то объект пути?). Например, рисунок 5a отсюда представляет собой векторный график, доступный в формате pdf (воспроизведен ниже).
Мои вопросы следующие:
Изменить: я уже видел этот вопрос, но вместо того, чтобы просто получить одну точку, связанную с объектом, я хотел установить абсолютное положение всех подпунктов (если это имеет смысл). Таким образом, я могу воссоздать график, используя положения меток осей.
Обычный тип объекта для графика в векторной графике — это путь (называемый pathItem в Illustrator JavaScript API). Это может быть одна соединённая рваная линия, плавная кривая Безье, а иногда и отдельные прямые линии. Зависит от программы, генерирующей график.
Я написал небольшой скрипт, чтобы вы начали извлекать точки из графика:
#target illustrator
// the current selection
var selection = app.activeDocument.selection;
// create a txt-file for the data
var file = File.saveDialog('Save a comma-separated list of the x and y coordinates of the points of the current selection, relative to the coordinate system of the artboard.', 'Comma-separated values:*.csv');
// enable writing to the file
file.open('w')
// iterate through each selected item
for (var i = 0; i < selection.length; i++) {
var item = selection[i];
// check if selection is a PathItem
if (item.typename === "PathItem") {
// every PathItem has a list of pathPoints
var points = item.pathPoints;
// iterate through each pathPoint of the item
for (var j = 0; j < points.length; j++) {
// the point in document coordinates, relative to the center of the whole document
var documentPoint = points[j].anchor;
// the point converted to artboard coordinates, relative to where you have placed the origin of the coordinate system
var artboardPoint = app.activeDocument.convertCoordinate(documentPoint, app.coordinateSystem, CoordinateSystem.ARTBOARDCOORDINATESYSTEM);
// write the artboard coordinates to the file
file.write(artboardPoint[0] + "," + artboardPoint[1] + "\n");
}
}
}
// stop writing to the file and save it
file.close();
Сценарий создает файл .csv, содержащий разделенный запятыми список координат x и y точек текущего выделения относительно системы координат монтажной области.
Я бы рекомендовал сначала перенести начало координат линейки артборда в начало графика, затем выбрать только сам график и запустить скрипт.
Если ваш график состоит из отдельных линий, вы получите много повторяющихся точек. Вы можете удалить их в файле .csv или сначала «очистить» свой график, используя мой скрипт из этого ответа , или интегрировать два скрипта.
пользователь157879
пользователь157879
Вольф
пользователь157879
Вольф