# 折れ線グラフでのランキング表示

**URL:** <https://discuss.elastic.co/t/topic/79714>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [March 23, 2017, 9:02am UTC](https://discuss.elastic.co/t/topic/79714 "2017-03-23T09:02:29Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![miz21358](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/miz21358/32/16636_2.png) [@miz21358](https://discuss.elastic.co/u/miz21358)\
**Post date:** [March 23, 2017, 9:02am UTC](https://discuss.elastic.co/t/topic/79714/1 "2017-03-23T09:02:29Z")

</div>

バージョン  
elasticsearch : 5.2.2  
kibana: 5.2.2

kibanaで折れ線グラフでランキング(1位を上に)を表示できますでしょうか。  
現在は、ランキングの重みづけを独自で行っており、その重み付けでグラフを表示しています。  
例) 1－100位までの重み付け：1位→100、20位→80、100位→1

ですが、ユーザから、本当のランキングの順位で見たいとの要望があがってきました。  
Excelでは、Y軸の表示を反転させるような機能がありますが、  
kibanaではそのような機能が見つけられませんでした。  
解決策の他、アイデア等ございましたら、ぜひご意見、ご教授のほど、よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![st\_1t](https://avatars.discourse-cdn.com/v4/letter/s/958977/32.png) [@st\_1t](https://discuss.elastic.co/u/st_1t)\
**Post date:** [March 23, 2017, 3:02pm UTC](https://discuss.elastic.co/t/topic/79714/2 "2017-03-23T15:02:37Z")

</div>

既存のグラフの詳細イメージがいまいち掴めていないのですが、  
ダミーデータ等でKibanaのVisualizeのスクリーンショットか設定値を以下の既存設定例のようにして公開することは可能でしょうか。  
あるいはExcelでテストデータを使ったグラフ等で、  
イメージをいただければもう少し検討出来る気がします。  
※物によりけりだと思いますがぱっと聞いた印象ですと、  
Split ChartでSubAggregatetionをTerms、Fieldを重み付けの値にして  
Order ByをTerms、OrderをDescendingにすれば行けるかも？と思いました。

### 既存設定例1:KibanaのVisualizeの設定値

```auto
* metrics
  * Y-Axis
    * Aggregation: Max
    * Field: 重み付け(integer)
* Split Lines
  * Sub Aggregation: Terms
  * Field: ホスト名(keyword)
  * Order By: metric: Max 重み付け
  * Order: Descending
    * Size: 5
* buckets
  * X-Axis
    * Aggregation: Date Histogram
    * Field: @timestamp
    * Interval: Auto

```

### 既存設定例2:各種製品の重み付けデータを時系列で折れ線で表示＠Excel

他にも商品D〜商品Zまで種類がありますが、  
0:01 - 0:15までのタイムレンジで重み付けの合計値が大きい順番でTOP３だけ表示

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

---

<div class="post-metadata">

**Author:** ![miz21358](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/miz21358/32/16636_2.png) [@miz21358](https://discuss.elastic.co/u/miz21358)\
**Post date:** [March 24, 2017, 10:06am UTC](https://discuss.elastic.co/t/topic/79714/4 "2017-03-24T10:06:51Z")

</div>

st\_1t様、アドバイスありがとうございます。  
提示情報が少なく、申し訳ありません。  
あるアイテムの日毎のランキングを表示したいと考えております。  
アイテムは陳列ジャンルが分かれており、どのジャンルでの売れ行きが良かったのか、などといった事も見れるようにしたいのです。

現在のkibanaでの表示は以下のようになっております。

 ![](https://us1.discourse-cdn.com/elastic/original/3X/0/2/0292cc93df9c7a3e16e1005fe55ffeaf76e6e630.png)

- metrics

- Y-Axis  
\*Aggregation: Min  
\*Field: ranking（ランキング順位そのもの）

- buckets

- X-Axis

- Aggregation: Date Histogram

- Field: timestamp（ランキング日付）

- Interval: Daily

- Split Lines

ですが、この状態では、本来ランキング上位にあるアイテムが下の方に表示されてしまいます。

Excelの場合、以下のような形を想定しています。

 ![](https://us1.discourse-cdn.com/elastic/original/3X/c/2/c21a8fa3b3621a8d8841603a1bc3f3adf2c63127.png)

Y軸を反転させ、値が小さいものの方を上位に表示させたいのです。  
何かアドバイス等ございましたら、ご教授のほど、よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![st1t](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/st1t/32/9188_2.png) [@st1t](https://discuss.elastic.co/u/st1t)\
**Post date:** [March 24, 2017, 1:34pm UTC](https://discuss.elastic.co/t/topic/79714/5 "2017-03-24T13:34:37Z")

</div>

うーん、なるほどです。  
確かにやりたいことに合うものを今すぐ用意するのは難しそうですね:cold\_sweat:  
ただ、若干見栄えはよろしくないし力技感があるのですが、  
Y-Axisで使っているranking FieldをScripted Fieldで処理して新フィールドを使ってグラフ表示する方法があります。  
以下方法を使えば-1から-100までの値になってそれっぽい表示はできますが、  
符号が逆転してしまうのが悩ましい感じですね。。。

### 例：ranking Fieldの範囲が1 -100までとした場合

#### データ例

- データ例(生データ)
  - 総合：55
  - 女性：44
  - 少女：16

- データ例(加工後の新データ)
  - 総合：-46
  - 女性：-57
  - 少女：-85

#### Scripted Field例

```auto
name: reverse_ranking
lang: painless
script: doc['ranking'].value - 101

```

Scripted Fieldについてはこのあたりを見てもらえれば良いかと思います。  
[https://www.elastic.co/guide/en/kibana/current/scripted-fields.html](https://www.elastic.co/guide/en/kibana/current/scripted-fields.html)

参考までに、Kibanaでの設定画面のスクリーンショットを載せておきます。

 ![](https://us1.discourse-cdn.com/elastic/original/3X/f/4/f4e2332436ce7eacffeb85e42295dcae5417e083.png)

---

<div class="post-metadata">

**Author:** ![miz21358](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/miz21358/32/16636_2.png) [@miz21358](https://discuss.elastic.co/u/miz21358)\
**Post date:** [March 25, 2017, 7:31am UTC](https://discuss.elastic.co/t/topic/79714/6 "2017-03-25T07:31:21Z")

</div>

st1t 様、アドバイスありがとうございます。  
やはりkibanaではY軸反転表示は難しいようですね。  
scripted field の案は自分では分からなかったので、大変参考になりました。  
ユーザには事情を説明し、次善策を考えたいと思います。  
また分からない事がありましたら、よろしくお願いいたします。  
失礼いたします。

---

<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:** [April 22, 2017, 7:31am UTC](https://discuss.elastic.co/t/topic/79714/7 "2017-04-22T07:31:23Z")

</div>

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