Wenn jemand früher eine wissenschaftliche Grafik hatte, hatten die Leser nur Zugriff auf das gerasterte Bild. Wenn Sie also die Rohdaten aus dem Diagramm erhalten möchten, können Sie so etwas wie DataThief oder Webplotdigitizer auf einem gerasterten Bild wie dem folgenden verwenden.
Heutzutage verlangen wissenschaftliche Veröffentlichungen in der Regel, dass die Autoren Plots im Vektorformat (pdf oder eps) einreichen. Das bedeutet, dass Sie das Diagramm direkt im Illustrator öffnen und die geplotteten Daten sehen können (normalerweise als ein Pfadobjekt?). Abbildung 5a von hier ist beispielsweise ein Vektordiagramm, auf das über das pdf (unten wiedergegeben) zugegriffen werden kann.
Meine Fragen sind folgende:
Bearbeiten: Ich habe diese Frage bereits gesehen, aber anstatt nur einen einzelnen Punkt mit dem Objekt zu verknüpfen, wollte ich die absolute Position aller Unterpunkte (falls das Sinn macht). Auf diese Weise kann ich das Diagramm anhand der Positionen der Achsenbeschriftungen neu erstellen.
Der übliche Objekttyp für ein Diagramm in einer Vektorgrafik ist ein Pfad ( in der Illustrator-JavaScript-API pathItem genannt). Es könnte eine verbundene unregelmäßige Linie, eine glatte Bezier-Kurve und manchmal getrennte gerade Linien sein. Hängt vom Programm ab, das den Graphen erzeugt.
Ich habe ein kleines Skript geschrieben, um Ihnen den Einstieg in das Extrahieren der Punkte aus einem Diagramm zu erleichtern:
#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();
Das Skript erstellt eine .csv-Datei, die eine durch Kommas getrennte Liste der x- und y-Koordinaten der Punkte der aktuellen Auswahl relativ zum Koordinatensystem der Zeichenfläche enthält.
Ich würde empfehlen, zuerst den Ursprung des Zeichenflächenlineals zum Ursprung des Diagramms zu verschieben, dann nur das Diagramm selbst auszuwählen und das Skript auszuführen.
Wenn Ihr Diagramm aus separaten Linien besteht, erhalten Sie viele doppelte Punkte. Sie können sie in der CSV-Datei entfernen oder Ihr Diagramm zuerst mit meinem Skript aus dieser Antwort "aufräumen" oder die beiden Skripte integrieren.
Benutzer157879
Benutzer157879
Wolff
Benutzer157879
Wolff