Source code for spateo.plotting.static.lisa

import matplotlib.pyplot as plt
import seaborn as sns
from geopandas import GeoDataFrame
from matplotlib import colors


[docs]def lisa_quantiles(df: GeoDataFrame): """Scatterplot of the gene expression and its spatial lag. Categorization into the four regions (HH, HL, LH, LL) is also annotated. This function should be used in conjunction with `st.tl.lisa_geo_df`. Args: df: The GeoDataFrame returned from running `st.tl.lisa_geo_df(adata, gene)`. Returns: Nothing but plot the scatterplot. """ # Setup the figure and axis f, ax = plt.subplots(1, figsize=(6, 6)) # Plot values sns.regplot(x="exp_zscore", y="w_exp_zscore", data=df, ci=None, color="red") # Add vertical and horizontal lines plt.axvline(0, c="k", alpha=0.5) plt.axhline(0, c="k", alpha=0.5) # Add text labels for each quadrant plt.text(1, 1.5, "HH", fontsize=25) plt.text(1, -1.5, "HL", fontsize=25) plt.text(-1.5, 1.5, "LH", fontsize=25) plt.text(-1.5, -1.5, "LL", fontsize=25) # Display plt.show()
[docs]def lisa(df: GeoDataFrame): """Create a plot with four panels. The first one is for the raw lisa (Local Indicators of Spatial Association ) score. The second one (the right one in the first row) is for the four quantiles. The third one is for the significance while the fourth one the five categories (not significant, hotspot, doughnut, coldspot and diamond. Args: df: The GeoDataFrame returned from running `st.tl.lisa_geo_df(adata, gene)`. Returns: Nothing but plot the four panels . """ # Set up figure and axes f, axs = plt.subplots(nrows=2, ncols=2, figsize=(12, 12)) # Make the axes accessible with single indexing axs = axs.flatten() # Subplot 1: raw lisa score ax = axs[0] df.plot( column="Is", cmap="viridis", scheme="quantiles", k=5, edgecolor="white", linewidth=0.1, alpha=0.75, legend=True, ax=ax, ) ax.set_aspect("equal") ax.set_axis_off() # Subplot 2: four quantiles ax = axs[1] hmap = colors.ListedColormap(["red", "lightblue", "blue", "pink"]) df.plot(column="labels", categorical=True, k=2, cmap=hmap, linewidth=0.1, ax=ax, edgecolor="white", legend=True) ax.set_aspect("equal") ax.set_axis_off() # Subplot 3: significance ax = axs[2] hmap = colors.ListedColormap(["grey", "black"]) df.plot(column="sig", categorical=True, k=2, cmap=hmap, linewidth=0.1, ax=ax, edgecolor="white", legend=True) ax.set_aspect("equal") ax.set_axis_off() # Subplot 4: five categories ax = axs[3] hmap = colors.ListedColormap(["grey", "red", "lightblue", "blue", "pink"]) df.plot(column="group", categorical=True, k=2, cmap=hmap, linewidth=0.1, ax=ax, edgecolor="white", legend=True) ax.set_aspect("equal") ax.set_axis_off() # Display the figure plt.show()