グラフ

グラフを追加する

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 バブル チャート

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

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

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

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

パラメータ タイプ 意味
Position string 凡例の場所
ShowLegendKey bool データラベルに凡例アイテムラベルを表示するかどうかを指定します

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

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

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

オプションの Title オブジェクトの Name パラメータを使用してチャートタイトルを設定すると、タイトルがチャートの上に表示されます。パラメータ Name は、アイコンヘッダーの既定値が空であると指定されていない場合に、Sheet1!$A$1 などの数式表現の使用をサポートします。

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

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

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

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

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

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

次のオプションパラメータを使用して、オプションの PlotArea オブジェクトを使用してデータラベルの形式を設定します:

パラメータ タイプ デフォルト値 意味
SecondPlotValues int 0 pieOfPie および barOfPie チャートの 2 番目のプロットの値を指定します。
ShowBubbleSize bool false バブルサイズ
ShowCatName bool false カテゴリ名
ShowLeaderLines bool false ブートラインの表示
ShowPercent bool false 割合
ShowSerName bool false 系列名
ShowVal bool false
NumFmt ChartNumFmt N/A ソースにリンクされている場合に指定し、データ ラベルのカスタム数値形式コードを設定します。NumFmt プロパティはオプションです。デフォルトのフォーマットコードは General です。

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

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

パラメータ タイプ デフォルト値 意味
None bool false 軸を無効にする
MajorGridLines bool false 主グリッド線を指定します
MinorGridLines bool false 副グリッド線を指定します
TickLabelSkip int 1 描画されるラベル間でスキップする目盛りラベルの数を指定します。TickLabelSkip プロパティはオプションです。デフォルト値は auto です
ReverseOrder bool false 逆シーケンススケール値
Maximum *float64 0 最大値、0 は自動
Minimum *float64 0 最小値、0 は自動
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 は自動
Font Font N/A 縦軸のフォントを指定します
LogBase float64 N/A 縦軸の対数スケールの底番号を指定します
NumFmt ChartNumFmt N/A ソースにリンクされている場合に指定し、軸のカスタム数値形式コードを設定します
Title []RichTextRun N/A グラフの主な縦軸のタイトルとサイズ変更を指定します

次のオプションパラメーターを使用して、オプションの 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.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 ""