Libraries

First, we need to load a few libraries:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

plt.rcParams["figure.dpi"] = 300

Dataset

Since scatter plot are made for visualizing relationships between two numerical variables, we need a dataset that contains at least two numerical columns.

Here, we will use the iris dataset that we load directly from the gallery:

path = 'https://raw.githubusercontent.com/holtzy/The-Python-Graph-Gallery/master/static/data/iris.csv'
df = pd.read_csv(path)
df.head()
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa

Control Marker Shape

In order to change the shape of the marker, you need to provide:

There are actually lots of different shapes available. Here are a few examples:

You can find them by running the following code:

from matplotlib import markers
print(markers.MarkerStyle.markers.keys())

Control Marker Features: Control Marker Shape

fig, ax = plt.subplots(figsize=(8, 6))
sns.regplot(
    x=df["sepal_length"],
    y=df["sepal_width"],
    marker="+",
    fit_reg=False,
    ax=ax
)

plt.show()

Changing Color, Transparency and Size of Markers

You can also change the other features of markers in a plot thanks to scatter_kws.

This argument accepts a dictionary of argument names and their values. These values will be exclusively used to style the dots. For example, scatter_kws={"color" : "red", "alpha" : 1.5} will render the line red and with an opacity of 0.3.

  • color : color of the markers
  • alpha : opacity of the markers
  • s : size of the markers

Control Marker Features: Changing Color, Transparency and Size of Markers

fig, ax = plt.subplots(figsize=(8, 6))
sns.scatterplot(
    x=df["sepal_length"],
    y=df["sepal_width"],
    color="skyblue",
    alpha=1,
    s=100,
    edgecolor="black",
    lw=3,
    ax=ax
)
plt.show()

Going further

This post explains how to customize the appearance of the markers in a scatter plot with seaborn.

You might be interested in