2012-11-27 11 views
5

Sto utilizzando Google Apps Script e EmbeddedChartBuilder per incorporare grafici a linee nel mio foglio di lavoro Google. Quando si creano questi grafici a mano, si ha l'opzione (non predefinita) su "Usa colonna A come etichette" (dove "A" è la prima colonna dell'intervallo di dati). Non riesco a trovare un modo per fare lo stesso da una sceneggiatura. Dalla documentazione Google Visualization Line Chart, sembra che l'impostazione predefinita sia il trattamento della prima colonna con il ruolo di "dominio"; ma EmbeddedChartBuilder sembra sovrascrivere questo e dare a tutte le colonne il ruolo "dati". Poiché non ho un DataTable esplicito, non ho modo di impostare lo column roles da solo.Script Google Apps: come impostare "Usa colonna A come etichette" nel grafico incorporato nel foglio di calcolo?

Ho perso un modo per farlo? O devo passare approcci da EmbeddedChartBuilder a using the spreadsheet as a data source?

risposta

12

Trovato! Impostare l'opzione useFirstColumnAsDomain su true con EmbeddedChartBuilder.setOption.

Questa opzione sembra non documentata. L'ho trovato andando su "Pubblica grafico" (fai clic sul grafico, quindi seleziona dal menu a discesa in alto a destra) e ispezionando la struttura dei dati JavaScript nel codice specificato. Per essere precisi, ho creato un grafico con "Usa la colonna A come etichette" deselezionato, ho afferrato la struttura dei dati di pubblicazione, quindi ho controllato "usa la colonna A come etichette", ho afferrato la nuova struttura dei dati di pubblicazione e ho confrontato i due. Per confrontare, suggerisco normalizing the JSON e in esecuzione diff. Questa tecnica può essere utilizzata per decodificare qualsiasi impostazione nell'editor grafico.

+0

È questo ancora lavorando per chiunque? Ho provato per circa un'ora senza successo –

+1

Perfetto, grazie! Sì funziona. per i grafici incorporati, questa è la sintassi esatta: '.setOption ('useFirstColumnAsDomain', true)' all'interno del blocco ** chartBuilder **. –

2

Ho appena avuto questo stesso problema. Ho adottato un approccio simile a quello di Andrew, ma ho trovato una soluzione diversa (presumibilmente perché Google ha aggiunto funzionalità ai loro grafici in Spreadsheets).

Ho utilizzato http://jsbeautifier.org/ per formattare il codice dopo la pubblicazione e ho trovato questa parte responsabile dell'aggiunta delle etichette dati. Si noti che è possibile anche cambiare il colore dello stelo che collega la barra per l'etichetta di dati:

"series": { 
        "0": { 
         "errorBars": { 
          "errorType": "none" 
         }, 
         "dataLabel": "value", 
         "annotations": { 
          "stemColor": "none" 
         } 
        }, 
        "color": "black", 
        "targetAxisIndex": 0, 
        "annotations": { 
         "textStyle": { 
          "color": "red", 
          "fontSize": 12 
         } 
        } 
       }, 
+0

@DaveGhidui, potrei contattarti per sapere come far funzionare lo script per il mio caso d'uso? Non sono bravo con JS e non sono riuscito a combinare il tuo script con la documentazione di Google citata da OP. –

Problemi correlati