Skip to content

Conversation

@mj3cheun
Copy link
Contributor

@mj3cheun mj3cheun commented Oct 17, 2025

  • Plot: Geographic visualization support with Kepler.gl integration (updates for geo (longitude/latitude) #799)
    • New bindings: point_longitude and point_latitude for specifying columns containing geographic coordinates
    • Kepler.gl encoding API:
      • encode_kepler_dataset() - Add datasets (nodes, edges, countries, states, etc.)
      • encode_kepler_layer() - Add visualization layers (point, arc, line, grid, hexagon, etc.)
      • encode_kepler() - Apply complete Kepler configuration
    • mercator_layout() - Convert lat/lon to Mercator projection with GPU/CPU support
    • New KeplerDataset, KeplerLayer, KeplerEncoding classes for type-safe configuration
    • Added 34 tests in test_kepler.py and 6 tests in test_layout.py

@mj3cheun mj3cheun self-assigned this Oct 22, 2025
…ctions to add kelper configurations to graphistry plottable
@mj3cheun mj3cheun marked this pull request as ready for review November 10, 2025 21:09
@mj3cheun mj3cheun requested a review from lmeyerov November 10, 2025 21:09
@mj3cheun
Copy link
Contributor Author

note: mercator layout docs need improvment

# Create geographic visualization
g = graphistry.edges(edges_df, 'src', 'dst').nodes(nodes_df, 'nodeId')
g = g.bind(point_longitude='lon', point_latitude='lat')
g.plot()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doesn't this need .settings(url_params={'play': 0}) ?


Visualize nodes as points on a map:

.. code-block:: python
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What data does this match up to? The above example has nodeId but no col Cities... this example feels incomplete->confusing...

.. code-block:: python
# Configure dataset and arc layer for edges
g = (g
Copy link
Contributor

@lmeyerov lmeyerov Nov 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same... maybe include the edge table?

"metadata": {},
"outputs": [],
"source": [
"g.plot()\n"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

save ipynb run against hub with embedded public viz in these

" \"type\": random_types\n",
"})\n",
"\n",
"display(edges_df.head(3))"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also let's show key df outputs like this as explains the following data

"outputs": [],
"source": [
"# Create Kepler encoding with datasets and layers\n",
"g2 = g \\\n",
Copy link
Contributor

@lmeyerov lmeyerov Nov 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a 'minimal' simple map we can get generated 'for free' on this data ? requiring all this config for a maps hello world on it looks quite complicated...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ex: should the first example be mercator? does that trigger kepler?

@@ -0,0 +1,841 @@
"""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@lmeyerov lmeyerov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comments -

  • file locations
  • saving outputs for iynb versions, both viz + df
  • 'minimal' kepler example looks scary.. is that inherent / api issue needing simplification, or demo can provide an easier minimal starting example for that data?
  • i'm unclear on diff of mercator layout vs kepler encoding... maybe discuss in both & cross-link?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants