# 折れ線グラフにおいて、日付単位で集計0件の場合にcountを0で集計させたい

**URL:** <https://discuss.elastic.co/t/0-count-0/292079>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [December 16, 2021, 6:13am UTC](https://discuss.elastic.co/t/0-count-0/292079 "2021-12-16T06:13:45Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![na\_taka](https://avatars.discourse-cdn.com/v4/letter/n/e274bd/32.png) [@na\_taka](https://discuss.elastic.co/u/na_taka)\
**Post date:** [December 16, 2021, 6:13am UTC](https://discuss.elastic.co/t/0-count-0/292079/1 "2021-12-16T06:13:45Z")

</div>

お世話になっております。  
折れ線グラフにおいて、質問させていただきます。

```auto
サンプルログ
date dstaddr_i レコード数
11/19 10.1.2.1 1
11/19 10.2.1.1 1
11/19 172.16.2.1 2
11/19 192.168.2.1 2
11/19 11.1.2.1 2 グラフ表示対象
11/19 173.16.2.1 2 グラフ表示対象
11/19 193.168.2.1 2 グラフ表示対象

11/20～11/28 レコードなし

11/29 10.1.2.1 1
11/29 10.2.1.1 1
11/29 172.16.2.1 2
11/29 192.168.2.1 2
11/29 11.1.2.1 2 グラフ表示対象
11/29 173.16.2.1 2 グラフ表示対象
11/29 193.168.2.1 2 グラフ表示対象
・・・省略

```

質問  
折れ線グラフにおいて、日付単位で集計時にレコードが無い日付において、  
countを0で集計させることは出来ませんでしょうか。  
11/20～11/28 をcount0として、折れ線を表示させることは出来ませんでしょうか。

```auto
設定
Data
 Metrics
  Y-axis
   Aggregation Count
   Custom lavel
   Advanced
    JSON input

```

```auto
 Buckets
  X-axis
   Aggregation Date Histogram
   Field timestamp_start
   Minimum interval Day
   Drop partial buckets OFF
   Custom lavel
   Advanced
    Scale metric values (deprecated) OFF
    JSON input

```

```auto
  Split series
   Sub aggregation Terms
   Field dstaddr
   Order by Metric: Count
   Order Descending
   Size 20
   Group order valuesin separate buckets OFF
   Show missing values OFF
   Custom lavel
   Advanced
   Exclude
   Include
   JSON input

```

現設定の表示イメージ

 ![image1](https://us1.discourse-cdn.com/elastic/original/3X/0/3/032347b790a541f282d0d6bf80fd6e69ed6730b2.png)

Search条件  
(NOT dstaddr\_i:10.0.0.0/8) AND (NOT dstaddr\_i:172.16.0.0/12) AND (NOT dstaddr\_i:192.168.0.0/16)

お手数ですが、回答頂けますと幸いです。

---

<div class="post-metadata">

**Author:** ![Tomo\_M](https://avatars.discourse-cdn.com/v4/letter/t/848f3c/32.png) [@Tomo\_M](https://discuss.elastic.co/u/Tomo_M)\
**Post date:** [December 20, 2021, 2:43pm UTC](https://discuss.elastic.co/t/0-count-0/292079/2 "2021-12-20T14:43:28Z")

</div>

日ごとのカウント数を示すなら棒グラフの方が良い（ヒストグラムですし）と思うのですが、折れ線グラフを利用する理由はありますか？参考に教えてもらえると嬉しいです。

一応折れ線グラフとしてはLensではなく、Aggregation based \> LineとしてX-axisはDate Histgram Aggregationとし、Advanced \> JSON inputに`{"min_doc_count": 0}`というパラメータを追加すると、挟まれた部分については0にできました。範囲の外は値が出ませんでした。

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/b/6/b6bd32939fe8cd630440122db986582f71ebc020.png)

こんな感じ。

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/6/b/6bb86f369c70c63937b1d3924434dbf76137728a.png)

通常の棒グラフによるヒストグラムだとこうなります。こちらの方が良いような？

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/6/1/61af91d0b5eea669e5ce6da2a5d6196012c69ee2.png)

---

<div class="post-metadata">

**Author:** ![na\_taka](https://avatars.discourse-cdn.com/v4/letter/n/e274bd/32.png) [@na\_taka](https://discuss.elastic.co/u/na_taka)\
**Post date:** [December 21, 2021, 1:42am UTC](https://discuss.elastic.co/t/0-count-0/292079/3 "2021-12-21T01:42:30Z")

</div>

ご回答ありがとうございます。

折れ線グラフの利用理由については、実際に運用する者でないため、定かではありませんが  
アクセスのあった情報(複数のアドレスなど)の推移を１つのグラフの中で確認したく、  
棒グラフではなく折れ線の方が見やすくなるのでこちらを採用していると想定しています。

ご回答いただいている設定では、「X-axisはDate Histgram」のみでの日付集計では、実現ができたのですが、  
「Split series」で「Field」を指定し、設定した場合には実現することが出来ておりません。  
現在の設定とグラフ表示は以下の通りとなります。

 ![1](https://us1.discourse-cdn.com/elastic/original/3X/e/8/e8dd984081c1698ca9207269220f3cc3859314d7.png)  
 ![2](https://us1.discourse-cdn.com/elastic/original/3X/a/8/a8895e769125ace28c655df4e6cac8bb6acafa7b.png)  
 ![3](https://us1.discourse-cdn.com/elastic/original/3X/7/8/78e134117ad4adc543a2bdc968debf53c4910c6d.png)  
12/14を「Split series」で指定している「Field：src\_user.keyword」の内容Aと内容Bを0件として  
表示させたいのですが、実現方法をご教示頂けませんでしょうか。  
内容A 12/13および12/15に2件 12/14は0件  
内容B 12/13および12/15に1件 12/14は0件

---

<div class="post-metadata">

**Author:** ![Tomo\_M](https://avatars.discourse-cdn.com/v4/letter/t/848f3c/32.png) [@Tomo\_M](https://discuss.elastic.co/u/Tomo_M)\
**Post date:** [December 21, 2021, 2:11am UTC](https://discuss.elastic.co/t/0-count-0/292079/4 "2021-12-21T02:11:44Z")

</div>

sub aggregation側でもmin\_doc\_countを指定していますか？

---

<div class="post-metadata">

**Author:** ![tsgkdt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsgkdt/32/39151_2.png) [@tsgkdt](https://discuss.elastic.co/u/tsgkdt)\
**Post date:** [December 21, 2021, 3:32am UTC](https://discuss.elastic.co/t/0-count-0/292079/5 "2021-12-21T03:32:28Z")

</div>

extended\_boundsを指定することで、データがないところに0を埋められるようです。

> **[Elasticsearchのdate\_histogramで、ドキュメント数が少ないときに、日時の上限と下限がうまく設定できない問題の対処 - Qiita](https://qiita.com/nakaakist/items/fc83dd921a13d13c78c2)**
>
> 概要
> 
> elasticsearchで、一定期間ごとの集計値を出す方法にdate\_histogramがある。
> 便利な機能だが、集計対象期間内のドキュメント数が少ないときにこれを使うと落とし穴があったので対処法をメモする。
> 
> 
> 試した...

しかし、Kibanaの標準のLineChartだと出来そうにないのですが、  
Vegaなら標準で可能になってます。こちらは検討できないでしょうか？

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/e/5/e5d21e75136d3ba144344e8c7ef348a1269a162d.png)

---

<div class="post-metadata">

**Author:** ![na\_taka](https://avatars.discourse-cdn.com/v4/letter/n/e274bd/32.png) [@na\_taka](https://discuss.elastic.co/u/na_taka)\
**Post date:** [December 21, 2021, 5:31am UTC](https://discuss.elastic.co/t/0-count-0/292079/6 "2021-12-21T05:31:24Z")

</div>

ご回答ありがとうございます。  
sub aggregation側のAdvanced \> JSON inputに{"min\_doc\_count":0}を指定しても、期待通りの結果にはなりませんでした。

---

<div class="post-metadata">

**Author:** ![na\_taka](https://avatars.discourse-cdn.com/v4/letter/n/e274bd/32.png) [@na\_taka](https://discuss.elastic.co/u/na_taka)\
**Post date:** [December 21, 2021, 5:37am UTC](https://discuss.elastic.co/t/0-count-0/292079/7 "2021-12-21T05:37:54Z")

</div>

Vegaでどのように出来るかを試してみているのですが、「Field：src\_user.keyword」の「Split series」ように「data部」記載してみたのですが、「encoding」の書き方が良くわからずエラーになってしまいます。記載について、ご教示頂けませんでしょうか。

```auto
{
  $schema: https://vega.github.io/schema/vega-lite/v4.json
  title: Event counts from all indexes
  data: {
    url: {
      // Apply dashboard context filters when set
      %context%: true
      // Filter the time picker (upper right corner) with this field
      %timefield%: @timestamp
      index: index-test*
      body: {
        aggs: {
          categories: {
            terms: { field: "src_user.keyword" }
              aggs: {
                time_buckets: {
                  date_histogram: {
                    field: @timestamp
                    interval: {%autointerval%: true}
                    extended_bounds: {
                      min: {%timefilter%: "min"}
                      max: {%timefilter%: "max"}
                    }
                    min_doc_count: 0
                  }
                }
              }
            }
          }
        }
        size: 0
      }
    }
    format: {property: "aggregations.time_buckets.buckets"}
  }

```

```auto
 mark: line
  encoding: {
    x: {
      field: key
      type: temporal
      axis: {title: false} // Customize X axis format
    }
    y: {
      field: doc_count
// field: src_user.keyword.count
      type: quantitative
      axis: {title: "Document count"}
    }
  }
}

```

実行の結果  
Syntax error, found trailing characters at line 36,3 \>\>\> mark: line  
encod ...

---

<div class="post-metadata">

**Author:** ![Tomo\_M](https://avatars.discourse-cdn.com/v4/letter/t/848f3c/32.png) [@Tomo\_M](https://discuss.elastic.co/u/Tomo_M)\
**Post date:** [December 21, 2021, 4:55pm UTC](https://discuss.elastic.co/t/0-count-0/292079/8 "2021-12-21T16:55:52Z")

</div>

確かに複数並べる場合は折れ線グラフの方が見やすいかもしれないですね、ありがとうございます。histogramでは間のビンがmin\_doc\_count=0で補完されますが、termsではどのキーワードがあるか明らかでないためかmin\_doc\_count=0は機能しませんでした。失礼しました。結果、kibanaのLineChartだと厳しそうに思います。

vega-liteで少し触ってみました。inline dataとして入力するとグラフになるのですが、kibana上でqueryにするとうまく動きませんでした。ヒントとして使ってください。

> **[Editor/IDE for Vega and Vega-Lite](https://vega.github.io/editor/#/url/vega-lite/N4IgJAzgxgFgpgWwIYgFwhgF0wBwqgegIDc4BzJAOjIEtMYBXAI0poHsDp5kTykBaADZ04JAKyUAVhDYA7EABoQAEySYUqUMSSCGcCGlCY2bANZoALAEYATFaWYaCOMoD6bBpjQAzHRDhKrhAwSABOygaaIMbqgmj2IBAMUFD6EN4McagJEKY0ODguaAAMSr40gkWoxQC+SjB0kUZssYYg2rpw8cU9pSChcIJq7PLoZJhddSDIAB5BUGwDaLKZgvWNaADaALpTSGRkAxSOck0gUGrkizT6bcpsUK4LDLKYrnChoYuuDAUfrkwPLJlCUlEkEO56P97o9nq9QSAmMlTHBMJFNqAUQBPNAgKyKFQPJ5AryoGwWYo2ADsVgAzFSHE44ADkaizkioCi0VtMXAsa4kBAgphQjRZGRcTZKVZKcUrAAVXq9Si9ABaBOx8QAbLY6VStUq+jDiS9SRYaWIqXVefzBcLReLJdLirS5YrDSqeuqlJrsjqLGIxFqAByGpTGuGkoMugCc1pA2IFQogIrFEvQUrsxQpCsNxU9xW9Cb52qsVJstLEUqV4aJkZK8cTdpTDvTIEzMrEbrzBaLvqsOpjwep1d6tdhJMswYsFi1jb5SftaadWYNuY9ao1Jb9NhsXejNcJE9NaCrwbEFnntuTqcdGedVO7G69W5xO67Mf1YaPJvhqAvdhzgoNqLi2y73lmobrkqvavtq1JUl+34RpO-6BlWV6gbebYdsUMZPjBm4+tuA6ugGM7IXWqEWLSUrBphzbYSuVgygRypEcWb6kWRWoUoeKEnqgtLTnuDE3q2zEsWxPSwcRXFapW5YWKG-FUYJtTAZxWESRBLFStB7EvnJ2rCbSA4qWOP71tktIBrUuxXrixQEgJf4sVqMZalqYjBoyzgspybJtByXLoiBjE6e2zqugZMkcf2-qBiGlHHn+roulKYlLneUVZjm7qEUZnGluWlajj046-qSNgGtmGnheJ4G5Z20n5vFJGDsO5YpVVaA1VKGGaU2jU5bha4FYZhZwTue7FAelmuaS9VaRFTW4Y+sVtUVCWzZ+tULWpf7LcN2U4c6UETXF20dQhSGqalS1ZWBo3Ovhm2ycVfpkRefEHQ9fUWDGI5PUxumse97XybSPG-RVVmobuFgVjYIORR2UkQ9dUOWuSFlw4t8TTl2Vio2t0q2K1H0JaZ5k9dZVLBrSBo1A5DlTN4izIKSoA4F8hShJgb4gPshx8CcsgQJQFwTGQ1z6JQIVBTUUwikgEsc6ECA8iA3hDNgcCjJs0RMgFoUK6y3LbEogpbMb-mK2iptBbsVvTGE5joMIshdEoBsLMo4GgDMbTeDcgggugjj2xbQoO5LmoOFihS4hMCA4IsOgEkgMw0GcjicgAwqh0xyPQIDK0ob6gKHgwR3bzJx07aKUATifJ+gACODBq446iOKQBIyALuKCqkwLLlMCyCIsIdh3XmpTIsygfLPtcpybjdx5QC-K0AA)**
>
> The Vega editor is a web application for authoring and testing Vega and Vega-Lite visualizations. It includes a number of example specifications that showcase both the visual encodings and interaction techniques.

---

<div class="post-metadata">

**Author:** ![na\_taka](https://avatars.discourse-cdn.com/v4/letter/n/e274bd/32.png) [@na\_taka](https://discuss.elastic.co/u/na_taka)\
**Post date:** [December 22, 2021, 1:45am UTC](https://discuss.elastic.co/t/0-count-0/292079/9 "2021-12-22T01:45:46Z")

</div>

ご確認ありがとうございます。  
展開頂きました情報を確認させて頂きます。

---

<div class="post-metadata">

**Author:** ![Tomo\_M](https://avatars.discourse-cdn.com/v4/letter/t/848f3c/32.png) [@Tomo\_M](https://discuss.elastic.co/u/Tomo_M)\
**Post date:** [December 24, 2021, 4:08pm UTC](https://discuss.elastic.co/t/0-count-0/292079/10 "2021-12-24T16:08:23Z")

</div>

Aggregation basedのTimelionを利用すると容易に実現できました。

```auto
.es(index=index-test*,
    timefield=@timestamp,
    split=src_user.keyword:10)

```

で実現されると思います。試してみてください。

---

<div class="post-metadata">

**Author:** ![na\_taka](https://avatars.discourse-cdn.com/v4/letter/n/e274bd/32.png) [@na\_taka](https://discuss.elastic.co/u/na_taka)\
**Post date:** [December 27, 2021, 12:26am UTC](https://discuss.elastic.co/t/0-count-0/292079/11 "2021-12-27T00:26:36Z")

</div>

ご回答ありがとうございます。

＞Aggregation basedのTimelionを利用すると容易に実現できました。  
上記の設定を行うところが、どの箇所になるかが分かりませんでした。  
「line chart」において、「X-axisでAggregation:Date Histogram」の「JSON input」に  
記載するような形でしょうか。  
大変申し訳ありません。どのような方法になるのかご教示頂けませんでしょうか。  
よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![Tomo\_M](https://avatars.discourse-cdn.com/v4/letter/t/848f3c/32.png) [@Tomo\_M](https://discuss.elastic.co/u/Tomo_M)\
**Post date:** [December 27, 2021, 9:00am UTC](https://discuss.elastic.co/t/0-count-0/292079/12 "2021-12-27T09:00:12Z")

</div>

これはDashboard上で利用できるLensではない他のタイプの可視化です。  
Kibanaのバージョンによって少し違うかもしれませんが、7.16.2ではAll types\>Aggregation based\>Timelionから作成できます。"Timelion expression"に上の設定を入力します。

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/8/8/8839efe108b0e6e0a78ad99dbf6f16f5bab38e34.png)  
 ![image](https://us1.discourse-cdn.com/elastic/original/3X/8/a/8a2574069452e67d2ff397d06f6b2665b20df9fb.png)

> **[Timelion | Kibana Guide \[7.16\] | Elastic](https://www.elastic.co/guide/en/kibana/current/timelion.html)**

---

<div class="post-metadata">

**Author:** ![na\_taka](https://avatars.discourse-cdn.com/v4/letter/n/e274bd/32.png) [@na\_taka](https://discuss.elastic.co/u/na_taka)\
**Post date:** [December 28, 2021, 12:42am UTC](https://discuss.elastic.co/t/0-count-0/292079/13 "2021-12-28T00:42:11Z")

</div>

ご回答ありがとうございます。  
＞これはDashboard上で利用できるLensではない他のタイプの可視化です。  
承知しました。今回は、他にも色々と表示させるものがありDashboard上での実現となるのですが、  
参考にさせて頂きます。ありがとうございます。

---

<div class="post-metadata">

**Author:** ![Tomo\_M](https://avatars.discourse-cdn.com/v4/letter/t/848f3c/32.png) [@Tomo\_M](https://discuss.elastic.co/u/Tomo_M)\
**Post date:** [December 28, 2021, 7:29am UTC](https://discuss.elastic.co/t/0-count-0/292079/14 "2021-12-28T07:29:18Z")

</div>

すみません、分かりづらい日本語でした。  
「「Dashboard上で利用できるLens」ではない他のタイプの可視化」ではなく、  
「Dashboard上で利用できる「Lensではない他のタイプ」の可視化」という意図でした。  
Dashboardで使えます。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [January 25, 2022, 7:30am UTC](https://discuss.elastic.co/t/0-count-0/292079/15 "2022-01-25T07:30:08Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
