ES 条形图 histogram

  • ES 中的聚合还有一个优点,可以很容易的转化成图表和图形,直方图 histogram

数据准备

  • PUT cars
    {"mappings": {"transactions": {"properties": {"color": {"type": "keyword"},"make": {"type": "keyword"},"price": {"type": "long"},"sold": {"type": "date"}}}}
    }
    
  • POST /cars/transactions/_bulk
    { "index": {}}
    { "price" : 10000, "color" : "red", "make" : "honda", "sold" : "2014-10-28" }
    { "index": {}}
    { "price" : 20000, "color" : "red", "make" : "honda", "sold" : "2014-11-05" }
    { "index": {}}
    { "price" : 30000, "color" : "green", "make" : "ford", "sold" : "2014-05-18" }
    { "index": {}}
    { "price" : 15000, "color" : "blue", "make" : "toyota", "sold" : "2014-07-02" }
    { "index": {}}
    { "price" : 12000, "color" : "green", "make" : "toyota", "sold" : "2014-08-19" }
    { "index": {}}
    { "price" : 20000, "color" : "red", "make" : "honda", "sold" : "2014-11-05" }
    { "index": {}}
    { "price" : 80000, "color" : "red", "make" : "bmw", "sold" : "2014-01-01" }
    { "index": {}}
    { "price" : 25000, "color" : "blue", "make" : "ford", "sold" : "2014-02-12" }
    

使用

  • 需求:为售价创建一个直方图,可以将间隔设为 20,000,对每个区间内已售汽车的售价求和

  • GET /cars/transactions/_search
    {"size" : 0,"aggs":{"price":{"histogram":{ "field": "price","interval": 20000},"aggs":{"revenue": {"sum": { "field" : "price"}}}}}
    }
    
  • 返回结果
    "aggregations": {"price": {"buckets": [{"key": 0,"doc_count": 3,"revenue": {"value": 37000}},{"key": 20000,"doc_count": 4,"revenue": {"value": 95000}},{"key": 40000,"doc_count": 0,"revenue": {"value": 0}},{"key": 60000,"doc_count": 0,"revenue": {"value": 0}},{"key": 80000,"doc_count": 1,"revenue": {"value": 80000}}]}}
    
  • @Test
    public void test05(){HistogramAggregationBuilder histogramAggregationBuilder = AggregationBuilders.histogram("popular_price").field("price").interval(20000);SumAggregationBuilder sumAggregationBuilder = AggregationBuilders.sum("revenue").field("price");histogramAggregationBuilder.subAggregation(sumAggregationBuilder);SearchResponse searchResponse = elasticsearchTemplate.getClient().prepareSearch("cars").setTypes("transactions").addAggregation(histogramAggregationBuilder).execute().actionGet();InternalHistogram internalHistogram = searchResponse.getAggregations().get("popular_price");List<InternalHistogram.Bucket> buckets = internalHistogram.getBuckets();for (InternalHistogram.Bucket bucket : buckets){String keyAsString = bucket.getKeyAsString();System.out.print(keyAsString+"---");InternalSum internalSum = bucket.getAggregations().get("revenue");double value = internalSum.getValue();System.out.println(value);}
    }
    
  • 返回结果
    0.0---37000.0
    20000.0---95000.0
    40000.0---0.0
    60000.0---0.0
    80000.0---80000.0
    
  • histogram 桶要求两个参数:一个数值字段以及一个定义桶大小间隔。

  • sum 度量嵌套在每个售价区间内,用来显示每个区间内的总收入。

  • 直方图的键值是区间的下限。键 0 代表区间 0-19,999 ,键 20000 代表区间 20,000-39,999等等

ES 条形图 histogram相关推荐

  1. (六)ElasticSearch 6.1.1聚合查询

    1 普通类型 1.1 基本操作 1.1.1 导入实战数据 数据字段如下: 字段 类型 作用 price long 汽车售价 color text 汽车颜色 make text 汽车品牌 sold da ...

  2. Elasticsearch聚合学习之二:区间聚合

    本文是<Elasticsearch聚合学习>系列的第二篇,上一篇是我们熟悉了聚合的基本操作,本篇的内容是按照区间聚合的实战操作: 系列文章列表 <Elasticsearch聚合学习之 ...

  3. matlab hist函数_算法工匠MATLAB专训营:Matlab绘图,小试牛刀

    作者 | 蔡老师 仿真秀专栏作者 首发 | 仿真秀平台 导读:正文之前,我在此详细说明一下,因为本文包含的程序太难得,网上肯定找不到这样的程序.随着讲课的越来越深入,我给出的程序会越来越实用,接近于实 ...

  4. 【MATLAB】MATLAB 可视化之统计图

    翻译自 MATLAB 官方文档 bar:条形图 bar3 : 3D条形图 barh : 绘制水平条形图 bar3h : 水平3D条形图 histogram: 直方图 histogram2:二元直方图 ...

  5. python 条形图填充疏密_教你利用Python玩转histogram直方图的五种方法

    直方图 直方图是一个可以快速展示数据概率分布的工具,直观易于理解,并深受数据爱好者的喜爱.大家平时可能见到最多就是 matplotlib,seaborn 等高级封装的库包,类似以下这样的绘图. 本篇博 ...

  6. R绘制直方图(Histogram)

    R绘制直方图(Histogram) 直方图表示一个变量的值在范围内的频率.直方图类似于条形图,但不同的是它将值分组到连续的范围内.直方图中的每个条表示该范围中的数值的个数. R使用hist()函数创建 ...

  7. python绘制多个条形图_python – 在Matplotlib中绘制多个直方图 – 颜色或并排条形图...

    问题:在Matplotlib中绘制多个直方图时,我无法区分绘图与另一个绘图 图像问题:** **次要问题:部分左侧标签"计数"不在图像范围内.为什么? 描述 我想绘制3个不同组的直 ...

  8. python画横条形图-用matplotlib画条形图(bar)

    条形图(bar chart)和直方图(histogram)有点相似,但也有本质的区别.条形图主要用于对可分类的数据(quanlitative data),而直方图主要是对连续数据进行分段(quanti ...

  9. python制作动态条形图-python – 动态更新matplotlib中的条形图

    我的Raspberry Pi附带了许多传感器;我使用TCP每秒两次将数据发送到我的PC.我想使用matplotlib连续绘制这些值. 我目前使用的方法似乎效率低下(我正在清理子图并每次重绘它)并且有一 ...

  10. 白话Elasticsearch37-深入聚合数据分析之案例实战Date Histogram Aggregation:统计每月电视销量

    文章目录 概述 官方说明 实例: 统计每月电视销量,没有销量的月份也要统计 概述 继续跟中华石杉老师学习ES,第37篇 课程地址: https://www.roncoo.com/view/55 官方说 ...

最新文章

  1. 通过data:image/png;base64把图片直接写在src里
  2. 织梦 ajax 返回,Dede织梦arclist标签+Ajax实现织梦首页分页-叙述织梦
  3. PPT | Docker定义存储-让应用无痛运行
  4. python遗传算法八皇后_遗传算法之:八皇后问题
  5. 使用 Spring Boot 快速构建 Spring 框架应用
  6. 2.2.3 C语言中的整数类型及类型转换(为什么强制类型转换值发生改变?带你从机器码的角度分析)
  7. Android GraphicBuffer
  8. 如何证明CRM WebClient UI上的应用是有状态(Stateful)的
  9. CRISP-DM:数据挖掘标准流程
  10. 计算机进程调度论文,计算机操作系统小论文Linux进程调度.doc
  11. android平台开发的安装
  12. 安装kepserver找不到根证书_考完二手车评估师证书却找不到工作,面试官的话让我记忆犹新!...
  13. .net 本地文件管理 代码_Gitee 在线解决代码冲突上线,解决冲突不再需要 Git 命令...
  14. 自回归移动平均模型(ARMA)-平稳序列
  15. ImageIO复制图片大小改变
  16. 【科技素养题】少儿编程 蓝桥杯青少组科技素养题真题及解析第16套
  17. 怎样使用Chrome浏览器截取整个网页?
  18. ”VT-x is not available (VERR_VMX_NO_VMX)“ 和 “VBoxManage: error: Details: code NS_ERROR_FAILURE”问题
  19. GEE——2018 年南非国家土地覆盖( 20 米分辨率多季节 Sentinel 2 卫星图像生成的)
  20. 一台计算机多个显示,一台计算机如何有两个显示器并显示不同的内容?

热门文章

  1. Android 常用的控件总结
  2. html调整背景页面的大小,css如何设置背景图片大小
  3. SmartGit同步更新本地仓库与远程仓库(origin)以及提交请求到forked过来的源仓库(upstream)
  4. 当win10电脑,本地网络出现了一个意外的情况,不能完成所有你在设置中所要求的更改?
  5. Anmle,Factors,andMultiFactorModels
  6. 解析2019年新零售社区团购发展方向
  7. GitHub又放大招,Python版本的植物大战僵尸还能作弊玩!
  8. 游戏开场镜头拉近(Unity3D开发之四)
  9. html5分镜头脚本范例,(最新整理)分镜头脚本范本
  10. Mono.Cecil - 0.6