グラフ

グラフを追加する

func (f *File) AddChart(sheet, cell string, chart *ChartOptions, combo ...*ChartOptions) error

指定したワークシート名、セル座標、およびグラフスタイルのプロパティに基づいてグラフを挿入します。

次に示すのは、Excelize が作成をサポートするグラフの種類 Type です:

ID 列挙 グラフの種類
0 Area 2D エリアチャート
1 AreaStacked 2D 積層型エリアチャート
2 AreaPercentStacked 2D 100% 積み上げ面グラフ
3 Area3D 3D エリアチャート
4 Area3DStacked 3D 積み上げ面グラフ
5 Area3DPercentStacked 3D 100% 積み上げ面グラフ
6 Bar 2D クラスタ棒グラフ
7 BarStacked 2D 積み上げ棒グラフ
8 BarPercentStacked 2D 100% 積み上げ棒グラフ
9 Bar3DClustered 3D クラスター棒グラフ
10 Bar3DStacked 3D 積み上げ棒グラフ
11 Bar3DPercentStacked 3D 100% 積み上げ棒グラフ
12 Bar3DConeClustered 3D 円グラフクラスタ付き棒グラフ
13 Bar3DConeStacked 3D 円グラフ積み上げ棒グラフ
14 Bar3DConePercentStacked 3D 100% 円グラフグラフ
15 Bar3DPyramidClustered 3D ピラミッド クラスタ化棒グラフ
16 Bar3DPyramidStacked 3D ピラミッド積み上げ棒グラフ
17 Bar3DPyramidPercentStacked 3D 100% ピラミッド積み上げ棒グラフ
18 Bar3DCylinderClustered 3D 円柱クラスタ化棒グラフ
19 Bar3DCylinderStacked 3D 円柱積み上げ棒グラフ
20 Bar3DCylinderPercentStacked 3D 100% 円柱積み上げ棒グラフ
21 Col 2D クラスター縦棒グラフ
22 ColStacked 2D 積み上げ縦棒グラフ
23 ColPercentStacked 2D 100% 積み上げ縦棒グラフ
24 Col3D 3D 縦棒グラフ
25 Col3DClustered 3D クラスター縦棒グラフ
26 Col3DStacked 3D 積み上げ縦棒グラフ
27 Col3DPercentStacked 3D 100% 積み上げ縦棒グラフ
28 Col3DCone 3D 円グラフグラフ
29 Col3DConeClustered 3D 円グラフクラスタ化縦棒グラフ
30 Col3DConeStacked 3D 円グラフ積み上げ縦棒グラフ
31 Col3DConePercentStacked 3D 100% 円グラフ積み上げ縦棒グラフ
32 Col3DPyramid 3D ピラミッド縦棒グラフ
33 Col3DPyramidClustered 3D ピラミッド クラスタ化縦棒グラフ
34 Col3DPyramidStacked 3D ピラミッド積み上げ縦棒グラフ
35 Col3DPyramidPercentStacked 3D 100% ピラミッド積み上げ縦棒グラフ
36 Col3DCylinder 3D 円柱縦棒グラフ
37 Col3DCylinderClustered 3D 円柱クラスタ化縦棒グラフ
38 Col3DCylinderStacked 3D 円柱積み上げ縦棒グラフ
39 Col3DCylinderPercentStacked 3D 100% 円柱積み上げ縦棒グラフ
40 Doughnut ドーナツチャート
41 Line 折れ線グラフ
42 Line3D 3D 折れ線グラフ
43 Pie 円グラフ
44 Pie3D 3D 円グラフ
45 PieOfPie パイチャートのパイ
46 BarOfPie 円グラフのバー
47 Radar レーダーチャート
48 Scatter 散布図
49 Surface3D 3D サーフェス チャート
50 WireframeSurface3D 3D ワイヤフレーム サーフェス チャート
51 Contour 輪郭グラフ
52 WireframeContour ワイヤフレーム輪郭グラフ
53 Bubble バブルチャート
54 Bubble3D 3D バブル チャート
55 StockHighLowClose 株価チャート (高値-安値-終値)
56 StockOpenHighLowClose 株価チャート (始値-高値-安値-終値)

Office Excel では、グラフデータ領域 Series は、データが描画される情報のセット、凡例專案 (系列)、および水平 (分類) 軸ラベルを指定します。

Excelize の Series のオプションパラメータは次のとおりです。

パラメータ 意味
Name 凡例專案 (系列)、グラフの凡例と数式バーに表示されます。Name パラメータはオプションであり、Series 1 .. n によって表されます。Name は、次のような式表現の使用をサポートしています: Sheet1!$A$1
Categories 水平 (カテゴリ) 軸ラベル。ほとんどの種類のグラフで,Categories プロパティはオプションであり、デフォルトでは 1..n などの連続した図形のシーケンスになります。
Values グラフのデータ領域は、Series で最も重要なパラメーターであり、グラフを作成するときに必要な唯一のパラメーターです。このオプションは、グラフが表示されるワークシートのデータにリンクします。
Fill これにより、データ シリーズの塗りつぶしの形式が設定されます。
Legend データ系列の凡例テキストのフォントを設定します。Legend プロパティはオプションです。
Line これは折れ線グラフの線のフォーマットを設定します。Line プロパティはオプションであり、指定されない場合、デフォルトのスタイルになります。設定できるオプションは「幅」です。Width の範囲は 0.25pt-999pt です。Widthの値が範囲外の場合、線のデフォルトの幅は 2pt です。
Marker ラインチャートとスキャッターチャートのデータ系列のラインタイプ幅とラインエンドタイプを設定します。オプションのパラメータ Size は線種の幅を指定し、その値の範囲は2〜72です(デフォルト値は 5 です)。線種のオプションパラメータ Symbol の列挙値 (デフォルトは auto): circledashdiamonddotnonepictureplussquarestartrianglexauto
DataLabelPosition これにより、グラフ シリーズのデータ ラベルの位置が設定されます。
DataPoint ドーナツグラフ、円グラフ、または3D円グラフ系列内の個々のデータポイントの書式を設定します。DataPoint プロパティはオプションです。

パラメータ Legend は凡例專案のプロパティ設定メソッドを提供し、Excelize の Legend の省略可能なパラメータは次のとおりです:

パラメータ タイプ 意味
Position string 凡例の場所
ShowLegendKey bool データラベルに凡例アイテムラベルを表示するかどうかを指定します
Font Font ラフの凡例テキストのフォントプロパティを設定します。設定できるプロパティは、セルの書式設定に使用されるフォントオブジェクトと同じです。フォントファミリー、サイズ、色、太字、斜体、下線、取り消し線などのプロパティを設定できます

チャートの凡例の Position を設定します。 デフォルトの凡例の位置は right です。このパラメータのオプションの値は次のとおりです:

オプション値 意味
none 凡例を無効にする
top
bottom
left
right
top_right 右上

ここで、パラメータ ShowLegendKey のデフォルト値は false です。

ChartTitle データ型の Title フィールドを使用して、チャートタイトルのプロパティを設定します。設定可能なプロパティは以下のとおりです:

パラメータ タイプ 意味
Fill Fill グラフタイトルの塗りつぶし色を設定します。Fill プロパティは省略可能です。
Border LineOptions グラフタイトルの枠線を設定します。設定可能なプロパティは、セルの書式設定に使用される枠線オブジェクトと同じです。Border プロパティは省略可能です。
Paragraph []RichTextRun グラフのタイトルテキストにリッチテキストを設定します。Paragraph プロパティはオプションであり、Formula プロパティと同時に設定することはできません。
Font *Font グラフタイトルの数式テキストのフォントプロパティを設定します。Font プロパティは省略可能です。
Formula string グラフのタイトルテキストの数式を設定します。例: Sheet1!$A$1。Formula プロパティはオプションであり、Paragraph プロパティと同時に設定することはできません。
OffsetX int グラフタイトルの水平方向のオフセットを設定します。OffsetX プロパティは省略可能です。デフォルト値は 0 で、OffsetX の値は 0 から 100 までの整数である必要があります。
OffsetY int グラフタイトルの垂直方向のオフセットを設定します。OffsetY プロパティは省略可能です。デフォルト値は 0 で、OffsetY の値は 0 から 100 までの整数である必要があります。
Width int グラフタイトルの幅を設定します。Width プロパティは省略可能です。デフォルト値は 0 で、Width の値は 0 から 100 までの整数である必要があります。
Height int グラフタイトルの高さを設定します。Height プロパティは省略可能です。デフォルト値は 0 で、Height の値は 0 から 100 までの整数である必要があります。
Overlay bool グラフのタイトルをグラフ上に重ねて表示するように設定します。Overlay プロパティはオプションです。デフォルト値は false です。

パラメータ ShowBlanksAs は、デフォルト値 gap、つまり「空のセルが空」として表示されている、非表示と空のセル設定を提供します。このパラメーターのオプション値は次のとおりです:

意味
gap 空距
span データポイントを直線で接続する
zero 0 値

Legend プロパティを使用して、すべてのデータ系列のチャート凡例を設定します。Legend プロパティはオプションです。

バブル チャートまたは 3D バブル チャートのすべてのデータ系列のバブル サイズを BubbleSizes プロパティで設定します。BubbleSizes プロパティはオプションです。デフォルトの幅は 100 で、値は 0 より大きく、300 以下である必要があります。

HoleSize プロパティでドーナツ チャートのすべてのデータ系列のドーナツ ホール サイズを設定します。HoleSize プロパティはオプションです。デフォルトの幅は 75 で、値は 0 より大きく、90 以下である必要があります。

系列の各データ マーカーの色が VaryColors によって異なっていることを指定します。デフォルト値は true です。

パラメータ Format は、AddPicture 関数で使用されるものと同じパラメータを使用して、チャートオフセット、ズーム、高さ幅比設定、印刷プロパティなどのパラメータの設定を提供します。

PlotArea フィールドと ChartPlotArea データ型を使用して、グラフのプロット領域のプロパティを設定します。設定可能なプロパティは以下のとおりです:

パラメータ タイプ デフォルト値 意味
SecondPlotValues int 0 PieOfPie および BarOfPie チャートの 2 番目のプロットの値を指定します。
ShowBubbleSize bool false バブルサイズ
ShowCatName bool true データラベルにカテゴリ名を表示することを指定します。ShowCatName プロパティはオプションです。
ShowDataTable bool false グラフの下にデータ テーブルを追加するために使用されます。グラフの種類に応じて、面グラフ、棒グラフ、列グラフ、折れ線グラフのシリーズ タイプのグラフでのみ使用できます。
ShowDataTableKeys bool false データテーブルに凡例キーを追加するために使用されます。ShowDataTable が有効な場合にのみ機能します。ShowDataTableKeys プロパティはオプションです。
ShowLeaderLines bool false データラベルに引き出し線を表示するかどうかを指定します。ShowLeaderLines プロパティはオプションです。
ShowPercent bool false 割合
ShowSerName bool false 系列名
ShowVal bool false
Fill Fill N/A グラフの塗りつぶし色を設定します。
UpBars ChartUpDownBar N/A 株価チャートの上昇バーの形式を指定します。UpBars プロパティはオプションです。
DownBars ChartUpDownBar N/A 株価チャートの下降バーの形式を指定します。DownBars プロパティはオプションです。
NumFmt ChartNumFmt N/A ソースにリンクされている場合に指定し、データ ラベルのカスタム数値形式コードを設定します。NumFmt プロパティはオプションです。デフォルトのフォーマットコードは General です。

パラメータ XAxisYAxis パラメータで軸オプションを設定します。

設定できる XAxis のプロパティは次のとおりです。

パラメータ タイプ デフォルト値 意味
None bool false 軸を無効にする
DropLines bool false 2D および 3D 面グラフと折れ線グラフのドロップラインを指定します。ドロップラインは、グラフ内のデータポイントを横軸(カテゴリ軸)まで垂直に結ぶ線です。折れ線グラフや面グラフでは、各ポイントのカテゴリ位置を正確に把握しやすくするためによく使用されます。DropLines プロパティはオプションです
HighLowLines bool false 2D 折れ線グラフの高低線を指定します。株価チャートではデフォルトで高低線が表示されます。高低線は各カテゴリーの最高値から最低値まで伸びています。HighLowLines プロパティはオプションです
MajorGridLines bool false 主グリッド線を指定します
MinorGridLines bool false 副グリッド線を指定します
TickLabelSkip int 1 描画されるラベル間でスキップする目盛りラベルの数を指定します。TickLabelSkip プロパティはオプションです。デフォルト値は auto です
ReverseOrder bool false 逆シーケンススケール値
Maximum *float64 0 最大値、0 は自動
Minimum *float64 0 最小値、0 は自動
Alignment Alignment N/A 水平軸と垂直軸の配置を指定します。設定できるフォントのプロパティは、TextRotationVertical です
Font Font N/A 横軸のフォントを指定します
NumFmt ChartNumFmt N/A ソースにリンクされている場合に指定し、軸のカスタム数値形式コードを設定します
Title []RichTextRun N/A グラフの主な横軸のタイトルとサイズ変更を指定します

設定できる YAxis のプロパティは次のとおりです。

パラメータ タイプ デフォルト値 意味
None bool false 軸を無効にする
MajorGridLines bool false 主グリッド線を指定します
MinorGridLines bool false 副グリッド線を指定します
MajorUnit float64 0 大目盛り間の距離を指定します。正の浮動小数点数を含める必要があります。MajorUnit プロパティはオプションです。デフォルト値は auto です
ReverseOrder bool false 逆シーケンススケール値
Maximum *float64 0 最大値、0 は自動
Minimum *float64 0 最小値、0 は自動
Alignment Alignment N/A 水平軸と垂直軸の配置を指定します。設定できるフォントのプロパティは、TextRotationVertical です
Font Font N/A 縦軸のフォントを指定します
LogBase float64 N/A 縦軸の対数スケールの底番号を指定します
NumFmt ChartNumFmt N/A ソースにリンクされている場合に指定し、軸のカスタム数値形式コードを設定します
Title []RichTextRun N/A グラフの主な縦軸のタイトルとサイズ変更を指定します

-90 から 90 まで設定できる TextRotation の値。

設定できる Vertical の値は、horzvertvert270wordArtVerteaVertmongolianVert、および wordArtVertRtl です。

次のオプションパラメーターを使用して、オプションの Dimension オブジェクトを使用してグラフのサイズを設定します:

パラメータ タイプ デフォルト値 意味
Height uint 260 高さ
Width uint 480

パラメータ combo は、2つ以上のチャートタイプを1つのチャートに結合するチャートの作成を指定します。たとえば、クラスター化された列を作成します-データ Sheet1!$E$1:$L$15 の折れ線グラフ:

package main

import (
    "fmt"

    "github.com/xuri/excelize/v2"
)

func main() {
    f := excelize.NewFile()
    defer func() {
        if err := f.Close(); err != nil {
            fmt.Println(err)
        }
    }()
    for idx, row := range [][]interface{}{
        {nil, "Apple", "Orange", "Pear"},
        {"Small", 2, 3, 3},
        {"Normal", 5, 2, 4},
        {"Large", 6, 7, 8},
    } {
        cell, err := excelize.CoordinatesToCellName(1, idx+1)
        if err != nil {
            fmt.Println(err)
            return
        }
        if err := f.SetSheetRow("Sheet1", cell, &row); err != nil {
            fmt.Println(err)
            return
        }
    }
    enable, disable := true, false
    if err := f.AddChart("Sheet1", "E1", &excelize.Chart{
        Type: excelize.Col,
        Series: []excelize.ChartSeries{
            {
                Name:       "Sheet1!$A$2",
                Categories: "Sheet1!$B$1:$D$1",
                Values:     "Sheet1!$B$2:$D$2",
            },
        },
        Format: excelize.GraphicOptions{
            ScaleX:          1,
            ScaleY:          1,
            OffsetX:         15,
            OffsetY:         10,
            PrintObject:     &enable,
            LockAspectRatio: false,
            Locked:          &disable,
        },
        Title: excelize.ChartTitle{
            Paragraph: []excelize.RichTextRun{
                {
                    Text: "2D クラスター縦棒グラフ - 折れ線グラフ",
                },
            },
        },
        Legend: excelize.ChartLegend{
            Position: "left",
        },
        PlotArea: excelize.ChartPlotArea{
            ShowCatName:     false,
            ShowLeaderLines: false,
            ShowPercent:     true,
            ShowSerName:     true,
            ShowVal:         true,
        },
    }, &excelize.Chart{
        Type: excelize.Line,
        Series: []excelize.ChartSeries{
            {
                Name:       "Sheet1!$A$4",
                Categories: "Sheet1!$B$1:$D$1",
                Values:     "Sheet1!$B$4:$D$4",
                Marker: excelize.ChartMarker{
                    Symbol: "none", Size: 10,
                },
            },
        },
        Format: excelize.GraphicOptions{
            ScaleX:          1,
            ScaleY:          1,
            OffsetX:         15,
            OffsetY:         10,
            PrintObject:     &enable,
            LockAspectRatio: false,
            Locked:          &disable,
        },
        Legend: excelize.ChartLegend{
            Position: "right",
        },
        PlotArea: excelize.ChartPlotArea{
            ShowCatName:     false,
            ShowLeaderLines: false,
            ShowPercent:     true,
            ShowSerName:     true,
            ShowVal:         true,
        },
    }); err != nil {
        fmt.Println(err)
        return
    }
    // ブックを保存する
    if err := f.SaveAs("Book1.xlsx"); err != nil {
        fmt.Println(err)
    }
}

グラフシートを作成する

func (f *File) AddChartSheet(sheet string, chart *ChartOptions, combo ...*ChartOptions) error

AddChartSheet は、指定されたグラフ形式セット(オフセット、スケール、アスペクト比の設定、印刷設定など)とプロパティセットによってグラフシートを作成するメソッドを提供します。Excelでは、グラフシートはグラフのみを含むワークシートです。

チャートを削除

func (f *File) DeleteChart(sheet, cell string) error

DeleteChart は、指定されたワークシートとセル名でXLSXのグラフを削除する機能を提供します。

results matching ""

    No results matching ""