We're excited to announce the release of GeoZ 2.0! This version introduces significant updates and new features that warrant the major version increment. For a detailed review of changes, please refer to the [Updates to prepare for 2.0 release](https://github.com/Ne-oL/geoz/commit/396d109e22cbaaf2794e6f0df9232558b2ab13f2) commit.
Major Updates
1. **New Function: `voronoi_regions_plot`**
- Specializes in mapping datasets with a small number of samples
- Based on collaborative work with researchers from Hohai University [(Fang et al., 2024)](https://doi.org/10.1016/j.ejrh.2024.101938)
- Supports masking for specific geographical areas
- Implements consistent color mapping with other functions
- Includes options for point display and transparency
2. **Global Settings**
- Introduced `set_geoz_options()` function to modify global settings for all GeoZ plotting functions
- Configurable color scheme and figure resolution
3. **Automatic Aspect Ratio Calculation**
- Implemented mechanism to display maps with correct geographical proportions
- Enabled by default for more natural-looking visualizations
4. **Expanded Default Colormap**
- Changed from "Set3" to "tab20", allowing representation of up to 20 distinct clusters
- Note: `mlx_plot` uses its own colormap based on the MLextend library
5. **Jupyter Notebook Examples**
- Added example notebooks for each GeoZ function, demonstrating capabilities and parameters
6. **Synthetic Dataset**
- Generated using [drawdata](https://github.com/koaning/drawdata) library
- Includes a simplified map of the United Arab Emirates (UAE) created with ArcGIS Pro
7. **GIS Convention Compliance**
- Now expects latitude in the first column and longitude in the second, regardless of column names
8. **Performance Optimization**
- Added `n_jobs` parameter to `mlx_plot` for parallel processing
- Implemented via PR to MLextend library: [PR 998](https://github.com/rasbt/mlxtend/pull/998)
General Updates
1. **`convex_hull_plot` Function Enhancements**
- Improved color mapping consistency
- Added `show_points` parameter
- Implemented automatic figure size calculation
- Removed dependency on `descartes`, now using matplotlib's `Polygon`
- Enhanced error handling for clusters with fewer than 3 points
2. **`sklearn_plot` Function Improvements**
- Added support for custom axes (`ax` parameter)
- Introduced `alpha` parameter for transparency control
- Enhanced bazel functionality with improved output
3. **`mlx_plot` Function Updates**
- Added support for custom axes (`ax` parameter)
- Improved color mapping consistency
- Enhanced bazel functionality
4. **`bazel_cluster` Function Refinements**
- Improved robustness and flexibility
- Enhanced compatibility with pandas Series input for `y_pred`
- Better handling of latitude and longitude column names
5. **Documentation Improvements**
- Expanded function descriptions and parameter explanations
- Added usage notes and examples
- Improved consistency in documentation style (NumPy Style)
6. **Code Structure and Style Enhancements**
- Implemented more consistent naming conventions
- Improved error handling and user feedback
- Enhanced code readability
7. **Functionality Enhancements**
- Improved handling of different input data formats
- Better integration with matplotlib
- Enhanced compatibility with various `y_pred` input types (list, numpy array, pandas Series)
Minor Updates
1. **Dependency Changes**
- Removed `descartes` dependency, replaced with direct use of matplotlib's `Polygon`
2. **Pandas 2.x Compatibility**
- Updated internal code to support pandas 2.x API changes
3. **Setup File Update**
- Updated to include new functions and dependencies
Breaking Changes
- Removed explicit support for 'LATITUDE' and 'LONGITUDE' column names, now using positional indexing
---
We encourage users to explore the new features, particularly the `voronoi_regions_plot` function. If you use this function in your research, please cite [Fang et al., 2024](https://doi.org/10.1016/j.ejrh.2024.101938). As always, we welcome feedback and contributions from our user community.