**Home** / **matplotlib scatter colorbar** / Matplotlib tips & tricks

Matplotlib tips & tricks

Transparency Text outline Colorbar adjustment

Scatter plots can be enhanced by using transparency (al- Use text outline to make text more visible. You can adjust a colorbar's size when adding it.

pha) in order to show area with higher density. Multiple scat-

ter plots can be used to delineate a frontier. import matplotlib.patheffects as fx im = ax.imshow(Z)

text = ax.text(0.5, 0.1, "Label")

X = np.random.normal(-1, 1, 500)

text.set_path_effects([ cb = plt.colorbar(im,

Y = np.random.normal(-1, 1, 500)

fx.Stroke(linewidth=3, foreground='1.0'), fraction=0.046, pad=0.04)

ax.scatter(X, Y, 50, "0.0", lw=2) # optional

fx.Normal()]) cb.set_ticks([])

ax.scatter(X, Y, 50, "1.0", lw=0) # optional

ax.scatter(X, Y, 40, "C1", lw=0, alpha=0.1)

Multiline plot Taking advantage of typography

Rasterization You can plot several lines at once using None as separator. You can use a condensed font such as Roboto Condensed

to save space on tick labels.

If your figure has many graphical elements, such as a huge X,Y = [], [] for tick in ax.get_xticklabels(which='both'):

scatter, you can rasterize them to save memory and keep

for x in np.linspace(0, 10*np.pi, 100): tick.set_fontname("Roboto Condensed")

X.extend([x, x, None]), Y.extend([0, sin(x), None])

other elements in vector format. ax.plot(X, Y, "black")

X = np.random.normal(-1, 1, 10_000)

Y = np.random.normal(-1, 1, 10_000)

ax.scatter(X, Y, rasterized=True) Getting rid of margins

fig.savefig("rasterized-figure.pdf", dpi=600)

Offline rendering

Once your figure is finished, you can call tight_layout()

Dotted lines

to remove white margins. If there are remaining margins,

you can use the pdfcrop utility (comes with TeX live).

To have rounded dotted lines, use a custom linestyle and

Use the Agg backend to render a figure directly in an array. modify dash_capstyle. Hatching

from matplotlib.backends.backend_agg import FigureCanvas ax.plot([0,1], [0,0], "C1", You can achieve a nice visual effect with thick hatch pat-

canvas = FigureCanvas(Figure())) linestyle = (0, (0.01, 1)), dash_capstyle="round") terns. 59%

... # draw some stuff ax.plot([0,1], [1,1], "C1", 53%

canvas.draw() linestyle = (0, (0.01, 2)), dash_capstyle="round") cmap = plt.get_cmap("Oranges") 38%

Z = np.array(canvas.renderer.buffer_rgba()) plt.rcParams['hatch.color'] = cmap(0.2) 27%

plt.rcParams['hatch.linewidth'] = 8

ax.bar(X, Y, color=cmap(0.6), hatch="" )

2018 2019

Range of continuous colors

Combining axes Read the documentation

You can use colormap to pick from a range of continuous

colors. You can use overlaid axes with different projections. Matplotlib comes with an extensive documentation explain-

X = np.random.randn(1000, 4) ax1 = fig.add_axes([0,0,1,1],

ing the details of each command and is generally accom-

cmap = plt.get_cmap("Oranges") label="cartesian") panied by examples. Together with the huge online gallery,

colors = cmap([0.2, 0.4, 0.6, 0.8]) ax2 = fig.add_axes([0,0,1,1], this documentation is a gold-mine.

label="polar", Matplotlib 3.5.0 handout for tips & tricks. Copyright (c) 2021 Matplotlib Development

ax.hist(X, 2, histtype='bar', color=colors) projection="polar") Team. Released under a CC-BY 4.0 International License. Supported by NumFOCUS.

How do you plot a scatter plot in MATLAB?scatter (x,y) creates a scatter plot with circular markers at the locations specified by the vectors x and y. To plot one set of coordinates, specify x and y as vectors of equal length. To plot multiple sets of coordinates on the same set of axes, specify at least one of x or y as a matrix. scatter (x,y,sz) specifies the circle sizes.

Creator: XeTeX output 2022.10.11:2221

Producer: xdvipdfmx (20190824)

CreationDate: Tue Oct 11 22:21:27 2022

Tagged: no

Form: none

Pages: 1

Encrypted: no

Page size: 841.89 x 595.28 pts (A4) (rotated 0 degrees)

File size: 78312 bytes

Optimized: no

PDF version: 1.5