How to improve the label placement for Matplotlib scatter chart?


To imporove the label placement for matplotlib scatter chart, we can first plot the scatter points and annotate those points with labels.

Steps

  • Create points for and using numpy.

  • Create labels using xpoints.

  • Use scatter() method to scatter points.

  • Iterate the labels, xpoints and ypoints and annotate the plot with label, x and y with different properties.

  • To display the figure, use show() method.

Example

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
xpoints = np.linspace(1, 10, 10)
ypoints = np.random.rand(10)
labels = ["%.2f" % i for i in xpoints]
plt.scatter(xpoints, ypoints, c=xpoints)
for label, x, y in zip(labels, xpoints, ypoints):
   plt.annotate(
      label,
      xy=(x, y), xytext=(-20, 20),
      textcoords='offset points', ha='right', va='bottom',
      bbox=dict(boxstyle='round,pad=0.5', fc='green', alpha=0.5),
      arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=0'))
plt.show()

Output

Updated on: 06-May-2021

954 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements