LogoLogoDocumentazione API
LogoLogoDocumentazione API
Homepage
PanoramicaAutenticazione e idempotenzaGenerazione di immaginiModifica di immaginiConversione di immaginiGenerazione di graficiJob e attesa limitataCreditiErroriLimiti di frequenza e concorrenzaChangelog dell'API
Documentazione API

Generazione di grafici

Generare un grafico pronto per la pubblicazione da una tabella di dati

POST /api/v1/charts/generations accetta multipart/form-data. Scope richiesto: charts:generate. Il servizio legge la tabella, sceglie o applica i tipi di grafico richiesti e restituisce una figura PNG finita. Non vengono esposti streaming o stati intermedi; interroga il job come qualsiasi altro.

Campi del modulo

CampoTipoObbligatorioPredefinitoRegole
datafilesì—CSV, TSV, TXT, XLSX o XLS; massimo 5 MB; la prima riga deve contenere nomi di colonna univoci
promptstringno—Cosa mostrare o evidenziare, fino a 8.000 caratteri
chart_typesstringnoautomaticoSeparati da virgola o ripetuti; fino a 4 tra i tipi seguenti
journal_stylestringnodefaultdefault, nature, science, cell, plos o acs
figure_widthstringnodoublesingle (una colonna) o double (due colonne)
color_palettestringnookabe_itookabe_ito, wong, tol_bright o tol_muted

I file non analizzabili, oltre il limite di dimensione o con nomi di colonna duplicati o vuoti restituiscono 400 INVALID_REQUEST (HTTP 413 per upload troppo grandi).

Tipi di grafico

Conversione di immagini

Convertire immagini in SVG, PPTX, PNG, PDF o TIFF

Job e attesa limitata

Interrogare il lavoro asincrono e leggere risultati ripuliti

Indice

Campi del modulo
Tipi di grafico
Crediti
Output
cURL
JavaScript
Python

bar, line, scatter, boxplot, violin, histogram, heatmap, regression, errorbar, timeseries, volcano, kaplan_meier, forest, dot, radar, upset, dendrogram, qq, ogive, funnel, density, roc, sankey, stem_leaf, correlation, pca, manhattan, bland_altman, waterfall, dose_response, growth_curve, standard_curve, raincloud, beeswarm, ecdf, ma_plot, enrichment, enzyme_kinetics, calendar_heatmap, choropleth, stacked_area, ridgeline, bubble, hexbin, paired_dot, precision_recall, calibration_curve, confusion_matrix.

Crediti

Ogni job di grafico costa 10 crediti, riservati all'accettazione e addebitati solo in caso di successo; i job falliti rilasciano la prenotazione.

Output

result.files contiene esattamente un PNG a risoluzione di stampa, con width e height. Le dimensioni dipendono dallo stile della rivista e dalla larghezza di colonna, quindi la dimensione in pixel varia.

cURL

curl https://sci-draw.com/api/v1/charts/generations \
  -H 'Authorization: Bearer sd_YOUR_KEY' \
  -H 'Idempotency-Key: study-12-figure-2' \
  -H 'Prefer: wait=30' \
  -F 'data=@results.csv;type=text/csv' \
  -F 'prompt=Confrontare i gruppi di trattamento e indicare la significatività' \
  -F 'chart_types=boxplot' \
  -F 'journal_style=nature' \
  -F 'figure_width=single'

JavaScript

const form = new FormData();
form.set('data', file);
form.set('prompt', 'Confrontare i gruppi di trattamento e indicare la significatività');
form.set('chart_types', 'boxplot');
const response = await fetch('https://sci-draw.com/api/v1/charts/generations', {
  method: 'POST',
  headers: { Authorization: `Bearer ${apiKey}`, 'Idempotency-Key': crypto.randomUUID() },
  body: form,
});

Python

with open("results.csv", "rb") as table:
    response = requests.post(
        "https://sci-draw.com/api/v1/charts/generations",
        headers={"Authorization": f"Bearer {api_key}", "Idempotency-Key": str(uuid.uuid4())},
        files={"data": ("results.csv", table, "text/csv")},
        data={"prompt": "Confrontare i gruppi di trattamento e indicare la significatività", "chart_types": "boxplot"},
    )

La tabella caricata è un input privato del job e non viene mai restituita nelle risposte di job o di log. Le sorgenti accettate vengono rimosse dopo un risultato terminale.