.clusters
class: ClusterOptions
- class ClusterOptions(**kwargs)[source]
- Options for marker clusters, the concept of sampling the data values into larger blocks in order to ease readability and increase performance of the JavaScript charts. - Warning - The marker clusters module does not work with - boostand- draggable-pointsmodules.- Note - The marker clusters feature requires the - marker-clusters.jsfile to be loaded, found in the modules directory of the download package, or online at code.highcharts.com/modules/marker-clusters.js.- Class Inheritance - copy(other=None, overwrite=True, **kwargs)
- Copy the configuration settings from this instance to the - otherinstance.- Parameters:
- other ( - HighchartsMeta) – The target instance to which the properties of this instance should be copied. If- None, will create a new instance and populate it with properties copied from- self. Defaults to- None.
- overwrite ( - bool) – if- True, properties in- otherthat are already set will be overwritten by their counterparts in- self. Defaults to- True.
- kwargs – Additional keyword arguments. Some special descendents of - HighchartsMetamay have special implementations of this method which rely on additional keyword arguments.
 
- Returns:
- A mutated version of - otherwith new property values
 
 - classmethod from_dict(as_dict: dict, allow_snake_case: bool = True)
- Construct an instance of the class from a - dictobject.
 - classmethod from_js_literal(as_str_or_file, allow_snake_case: bool = True, _break_loop_on_failure: bool = False)
- Return a Python object representation of a Highcharts JavaScript object literal. - Parameters:
- as_str_or_file ( - str) – The JavaScript object literal, represented either as a- stror as a filename which contains the JS object literal.
- allow_snake_case ( - bool) – If- True, interprets- snake_casekeys as equivalent to- camelCasekeys. Defaults to- True.
- _break_loop_on_failure ( - bool) – If- True, will break any looping operations in the event of a failure. Otherwise, will attempt to repair the failure. Defaults to- False.
 
- Returns:
- A Python object representation of the Highcharts JavaScript object literal. 
- Return type:
- HighchartsMeta
 
 - classmethod from_json(as_json_or_file, allow_snake_case: bool = True)
- Construct an instance of the class from a JSON string. - Parameters:
- as_json_or_file – The JSON string for the object or the filename of a file that contains the JSON string. 
- allow_snake_case ( - bool) – If- True, interprets- snake_casekeys as equivalent to- camelCasekeys. Defaults to- True.
 
- Returns:
- A Python objcet representation of - as_json.
- Return type:
- HighchartsMeta
 
 - to_dict() dict
- Generate a - dictrepresentation of the object compatible with the Highcharts JavaScript library.- Note - The - dictrepresentation has a property structure and naming convention that is intentionally consistent with the Highcharts JavaScript library. This is not Pythonic, but it makes managing the interplay between the two languages much, much simpler.
 - to_js_literal(filename=None, encoding='utf-8') str | None
- Return the object represented as a - strcontaining the JavaScript object literal.
 - to_json(filename=None, encoding='utf-8')
- Generate a JSON string/byte string representation of the object compatible with the Highcharts JavaScript library. - Note - This method will either return a standard - stror a- bytesobject depending on the JSON serialization library you are using. For example, if your environment has orjson, the result will be a- bytesrepresentation of the string.- Parameters:
- Returns:
- A JSON representation of the object compatible with the Highcharts library. 
- Return type:
 
 - static trim_dict(untrimmed: dict, to_json: bool = False) dict
- Remove keys from - untrimmedwhose values are- Noneand convert values that have- .to_dict()methods.
 - static trim_iterable(untrimmed, to_json=False)
- Convert any - EnforcedNullTypevalues in- untrimmedto- 'null'.
 - property allow_overlap: bool | None
- If - True, clusters are allowed to overlap. Otherwise, overlapping is prevented. Defaults to- True.- Warning - Preventing overlapping only works if - layout_algorithm.typeis set to- 'grid'.
 - property animation: AnimationOptions | None
- Options for the cluster marker animation. - Return type:
- AnimationOptionsor- None
 
 - property data_labels: DataLabel | None
- Options for the cluster data labels. - Return type:
- DataLabelor- None
 
 - property drill_to_cluster: bool | None
- If - True, zoom the plot area to the cluster points range when a cluster is clicked. Defaults to- True.
 - property events: ClusterEvents | None
- General event handlers for marker clusters. - Return type:
- SeriesEventsor- None
 
 - property layout_algorithm: VectorLayoutAlgorithm | None
- Options for the layout algorithm to apply to the Vector chart. - Return type:
 
 - property marker: Marker | None
- Options for the point markers of line-like series. - Properties like - fill_color,- line_colorand- line_widthdefine the visual appearance of the markers. Other series types, like column series, don’t have markers, but have visual options on the series level instead.- Return type:
- Markeror- None
 
 - property minimum_cluster_size: int | None
- The minimum number of points to be combined into a cluster. Defaults to - 2.- Note - This value has to be greater or equal to - 2.
 
class: VectorLayoutAlgorithm
- class VectorLayoutAlgorithm(**kwargs)[source]
- Options for the layout algorithm to apply to the Vector chart. - Class Inheritance - copy(other=None, overwrite=True, **kwargs)
- Copy the configuration settings from this instance to the - otherinstance.- Parameters:
- other ( - HighchartsMeta) – The target instance to which the properties of this instance should be copied. If- None, will create a new instance and populate it with properties copied from- self. Defaults to- None.
- overwrite ( - bool) – if- True, properties in- otherthat are already set will be overwritten by their counterparts in- self. Defaults to- True.
- kwargs – Additional keyword arguments. Some special descendents of - HighchartsMetamay have special implementations of this method which rely on additional keyword arguments.
 
- Returns:
- A mutated version of - otherwith new property values
 
 - classmethod from_dict(as_dict: dict, allow_snake_case: bool = True)
- Construct an instance of the class from a - dictobject.
 - classmethod from_js_literal(as_str_or_file, allow_snake_case: bool = True, _break_loop_on_failure: bool = False)
- Return a Python object representation of a Highcharts JavaScript object literal. - Parameters:
- as_str_or_file ( - str) – The JavaScript object literal, represented either as a- stror as a filename which contains the JS object literal.
- allow_snake_case ( - bool) – If- True, interprets- snake_casekeys as equivalent to- camelCasekeys. Defaults to- True.
- _break_loop_on_failure ( - bool) – If- True, will break any looping operations in the event of a failure. Otherwise, will attempt to repair the failure. Defaults to- False.
 
- Returns:
- A Python object representation of the Highcharts JavaScript object literal. 
- Return type:
- HighchartsMeta
 
 - classmethod from_json(as_json_or_file, allow_snake_case: bool = True)
- Construct an instance of the class from a JSON string. - Parameters:
- as_json_or_file – The JSON string for the object or the filename of a file that contains the JSON string. 
- allow_snake_case ( - bool) – If- True, interprets- snake_casekeys as equivalent to- camelCasekeys. Defaults to- True.
 
- Returns:
- A Python objcet representation of - as_json.
- Return type:
- HighchartsMeta
 
 - to_dict() dict
- Generate a - dictrepresentation of the object compatible with the Highcharts JavaScript library.- Note - The - dictrepresentation has a property structure and naming convention that is intentionally consistent with the Highcharts JavaScript library. This is not Pythonic, but it makes managing the interplay between the two languages much, much simpler.
 - to_js_literal(filename=None, encoding='utf-8') str | None
- Return the object represented as a - strcontaining the JavaScript object literal.
 - to_json(filename=None, encoding='utf-8')
- Generate a JSON string/byte string representation of the object compatible with the Highcharts JavaScript library. - Note - This method will either return a standard - stror a- bytesobject depending on the JSON serialization library you are using. For example, if your environment has orjson, the result will be a- bytesrepresentation of the string.- Parameters:
- Returns:
- A JSON representation of the object compatible with the Highcharts library. 
- Return type:
 
 - static trim_dict(untrimmed: dict, to_json: bool = False) dict
- Remove keys from - untrimmedwhose values are- Noneand convert values that have- .to_dict()methods.
 - static trim_iterable(untrimmed, to_json=False)
- Convert any - EnforcedNullTypevalues in- untrimmedto- 'null'.
 - property distance: str | int | float | Decimal | None
- When - VectorLayoutAlgorithm.type()is set to- 'kmeans',- distanceis a maximum distance between point and cluster center so that this point will be inside the cluster. Defaults to- 40.- The distance is either a number expressed in pixels or a percentage defining a percentage of the plot area width. 
 - property grid_size: str | int | float | Decimal | None
- When - VectorLayoutAlgorithm.type()is set to- 'grid',- grid_sizeis is a size of a grid square element. Defaults to- 50.- The - grid_sizeis either a number expressed in pixels or a percentage defining a percentage of the plot area width.
 - property iterations: int | None
- When - VectorLayoutAlgorithm.type()is set to- 'kmeans', the- iterationsindicates the number of times that the algorithm will be repeated to find cluster positions. Defaults to- None.
 - property kmeans_threshold: int | None
- When - VectorLayoutAlgorithm.type()is set to- Noneand the number of visible points is less than or equal to- kmeans_threshold, the- 'kmeans'algorithm is used by default to find clusters. When the number of visible points exceeds the- kmeans_threshold, the- 'grid'algorithm is used. Defaults to- 100.- Hint - This threshold is a powerful tool to ensure good performance on large datasets and better cluster arrangemnet after zoom. 
 - property type: str | None
- Type of algorithm to use to combine points into a cluster. Defaults to - None.- There are three available algorithms: - 'grid'- grid-based clustering technique. Points are assigned to squares of set size depending on their position on the plot area. Points inside the grid square are combined into a cluster. The grid size can be controlled by- VectorLayoutAlgorithm.grid_size()(grid size changes at certain zoom levels).
- 'kmeans'- based on K-Means clustering technique. In the first step, points are divided using the grid method (applying- VectorLayoutAlgorithm.distance()as the grid size) to find the initial amount of clusters. Next, each point is classified by computing the distance between each cluster center and that point. When the closest cluster distance is lower than- VectorLayoutAlgorithm.distance(), the point is added to this cluster otherwise is classified as noise. The algorithm is repeated until each cluster center does not change its previous position more than one pixel. This technique is more accurate but also more time consuming than the- 'grid'algorithm, especially for big datasets.
- 'optimizedKmeans'- based on K-Means clustering technique. This algorithm uses k-means algorithm only on the chart initialization or when chart extremes have greater range than on initialization. When a chart is redrawn the algorithm checks only clustered points distance from the cluster center and rebuilds it when the point is spaced enough to be outside the cluster. It provides a performance improvement and more stable clusters position so that it can be used rather on small and sparse datasets.
 - When - None, the algorithm applied depends on- VectorLayoutAlgorithm.kmeans_threshold()such that if there are more visible points than the- kmeans_thresholdthe- 'grid'algorithm is applied. If fewer, then- 'kmeans'is applied.- A custom clustering algorithm can be applied by setting - typeto a JavaScript callback function. This function takes an array of- processedXData,- processedYData,- processedXDataindexes, and- VectorLayoutAlgorithmoptions as arguments and should return an object with grouped data.- A custom algorithm should return an object similar to: - { clusterId1: [{ x: 573, y: 285, index: 1 // point index in the data array }, { x: 521, y: 197, index: 2 }], clusterId2: [{ ... }] ... } - Where - clusterId*(in the example above - a unique id of a cluster or noise) is an array of points belonging to a cluster. If the array has only one point or fewer points than set in- Cluster.minimum_cluster_size, it won’t be combined into a cluster.