7 #ifndef __TC_VIS_HEATMAP 8 #define __TC_VIS_HEATMAP 10 #include <core/data/sframe/gl_sframe.hpp> 12 #include "extrema.hpp" 13 #include "groupby.hpp" 14 #include <visualization/server/plot.hpp> 17 namespace visualization {
19 class heatmap_result:
public transformation_output,
20 public group_aggregate_value {
22 std::vector<std::vector<flex_int>> bins;
25 void widen_x(
double value);
26 void widen_y(
double value);
29 bounding_box<double> extrema;
32 void init(
double xMin,
double xMax,
double yMin,
double yMax);
35 virtual group_aggregate_value* new_instance()
const override;
36 virtual void add_element_simple(
const flexible_type& flex)
override;
37 virtual void combine(
const group_aggregate_value& other)
override;
38 virtual flexible_type emit()
const override;
40 virtual std::string name()
const override;
41 virtual void save(oarchive& oarc)
const override;
42 virtual void load(iarchive& iarc)
override;
45 virtual std::string vega_column_data(
bool)
const override;
58 class heatmap :
public groupby<heatmap_result> {
60 virtual void init(
const gl_sframe& source,
size_t batch_size)
override;
61 virtual std::vector<heatmap_result> split_input(
size_t num_threads)
override;
64 std::shared_ptr<Plot> plot_heatmap(
67 const flexible_type& xlabel,
68 const flexible_type& ylabel,
69 const flexible_type& title);