Custom your bubble plot


The previous post describes how to plot a basic bubble plot. This post aims to show how you can customize the features of your basic bubble plot with several examples.

Color

After plotting a basic bubble plot with the scatter() function of matplotlib, you can customize it by changing the color of the markers. You can use the color parameter c for this purpose.

# libraries
import matplotlib.pyplot as plt
import numpy as np
 
# create data
x = np.random.rand(5)
y = np.random.rand(5)
z = np.random.rand(5)
 
# Change color with c and alpha
plt.scatter(x, y, s=z*4000, c="red", alpha=0.4)

# show the graph
plt.show()

Shape

As you can change the color of the markers, it is also possible to change the shapes by giving marker parameter to the scatter() function.

# libraries
import matplotlib.pyplot as plt
import numpy as np
 
# create data
x = np.random.rand(5)
y = np.random.rand(5)
z = np.random.rand(5)
 
# Change shape with marker
plt.scatter(x, y, s=z*4000, marker="D")

# show the graph
plt.show()

Global Size

In order to change the size of each marker, s size parameter can be used. In the example below, s parameter is set as a multiplier of z data points, so the sizes of the markers depends on the z values.

# libraries
import matplotlib.pyplot as plt
import numpy as np
 
# create data
x = np.random.rand(5)
y = np.random.rand(5)
z = np.random.rand(5)
 
# Change global size playing with s
plt.scatter(x, y, s=z*200)

# show the graph
plt.show()

Edges

linewidth parameter is useful to set the edge thickness of the markers in a basic bubble plot built with matplotlib.

# libraries
import matplotlib.pyplot as plt
import numpy as np
 
# create data
x = np.random.rand(5)
y = np.random.rand(5)
z = np.random.rand(5)
 
# Change line around dot
plt.scatter(x, y, s=z*4000, c="green", alpha=0.4, linewidth=6)

# show the graph
plt.show()

Seaborn Style

It is possible to benefit from seaborn library style when plotting charts in matplotlib. You just need to load the seaborn library and use seaborn set_theme() function!

# libraries
import matplotlib.pyplot as plt
import numpy as np
 
# create data
x = np.random.rand(5)
y = np.random.rand(5)
z = np.random.rand(5)
 
# pimp your plot with the seaborn style
import seaborn as sns
sns.set_theme()

# plot
plt.scatter(x, y, s=z*4000, c="green", alpha=0.4, linewidth=6)
 
# Add titles (main and on axis)
plt.xlabel("the X axis")
plt.ylabel("the Y axis")
plt.title("A bubble plot", loc="left")

# show the graph
plt.show()

Scatterplot

Heatmap

Correlogram

Bubble

Connected Scatter

2D Density

Contact & Edit

👋 This document is a work by Yan Holtz. Any feedback is highly encouraged. You can fill an issue on Github, drop me a message onTwitter, or send an email pasting yan.holtz.data with gmail.com.

This page is just a jupyter notebook, you can edit it here. Please help me making this website better 🙏!

Violin

Density

Histogram

Boxplot

Ridgeline

Scatterplot

Heatmap

Correlogram

Bubble

Connected Scatter

2D Density

Barplot

Spider / Radar

Wordcloud

Parallel

Lollipop

Circular Barplot

Treemap

Venn Diagram

Donut

Pie Chart

Dendrogram

Circular Packing

Line chart

Area chart

Stacked Area

Streamgraph

Map

Choropleth

Hexbin

Cartogram

Connection

Bubble

Chord Diagram

Network

Sankey

Arc Diagram

Edge Bundling

Colors

Interactivity

Animation with python

Animation

Cheat sheets

Caveats

3D