14

Google Apps ScriptとEmbeddedChartBuilderを使用して、Googleスプレッドシートに折れ線グラフを埋め込みます。これらのグラフを手動で作成する場合、「列Aをラベルとして使用する」(「A」はデータ範囲の最初の列)の(デフォルトではない)オプションがあります。スクリプトから同じことを行う方法が見つかりません。Google Visualization Line Chartのドキュメントから、デフォルトでは最初の列が「ドメイン」の役割を持つものとして扱われるようです。しかし、EmbeddedChartBuilderはこれをオーバーライドし、すべての列に「データ」の役割を与えるようです。明示的なDataTableがないため、列の役割を自分で設定する方法がありません。

私はこれを行う方法を逃しましたか?または、アプローチをEmbeddedChartBuilderからデータソースとしてスプレッドシートを使用するように切り替える必要がありますか?

4

2 に答える 2

16

それを見つけた!オプションuseFirstColumnAsDomainEmbeddedChartBuilder.setOptiontrueでに設定します。

このオプションは文書化されていないようです。[グラフを公開]に移動し(グラフをクリックして、右上のドロップダウンから選択)、指定されたコードのJavaScriptデータ構造を調べて見つけました。正確には、[列Aをラベルとして使用する]をオフにしてグラフを作成し、公開データ構造を取得してから、[列Aをラベルとして使用する]をオンにして、新しい公開データ構造を取得し、2つを比較しました。比較するために、JSONを正規化して実行することをお勧めしますdiff。この手法を使用して、チャートエディタの設定をリバースエンジニアリングできます。

于 2012-11-30T20:50:29.517 に答える
4

私はちょうどこれと同じ問題を経験しました。Andrewと同様のアプローチを取りましたが、別の解決策を見つけました(おそらく、Googleがスプレッドシートのグラフに機能を追加したためです)。

http://jsbeautifier.org/を使用して公開後にコードをフォーマットしましたが、この部分がデータラベルの追加を担当していることがわかりました。バーをデータラベルに接続するステムの色を変更することもできることに注意してください。

"series": {
                    "0": {
                        "errorBars": {
                            "errorType": "none"
                        },
                        "dataLabel": "value",
                        "annotations": {
                            "stemColor": "none"
                        }
                    },
                    "color": "black",
                    "targetAxisIndex": 0,
                    "annotations": {
                        "textStyle": {
                            "color": "red",
                            "fontSize": 12
                        }
                    }
                },
于 2015-06-23T19:56:50.520 に答える