I am trying to set the default colormap using PyPlot, but the colors are still the default colors.

Here’s a MWE

```
using PyPlot
PyPlot.matplotlib.rc("image",cmap="gray")
fig, ax = subplots()
x = 1:0.1:10
y = exp.(x/π)
ax.plot(x/π,y, "-o")
```

and the plot is

What am I doing wrong?

Not sure this is what you want, but you can do this:

```
cm = get_cmap(:gray)
fig, ax = subplots()
x = 1:0.1:10
y = exp.(x/π)
ax.plot(x/π,y, "-o",color=cm(0.0))
ax.plot(x/π,2y, "-o",color=cm(0.4))
ax.plot(x/π,3y, "-o",color=cm(0.9))
```

The values to get the color need to be either floats between `0.0`

and `1.0`

or `Int`

between `0`

and `255`

.

1 Like

Actually, my intent is to use by default 20 different colors to plot 20 different data sets.

I thought of using `tab20`

color map (see here).

I know that I can simply do this

```
cm = get_cmap(:tab20)
fig, ax = subplots()
x = 1:0.1:10
y = exp.(x/π)
colorrange = (0:19) ./ 20
for i=1:20
ax.plot(x/π,i*y, "-o",color=cm(colorrange[i]))
end
```

and get

But I was wondering if there is a way to simply set the default color set, and let all the colors be chosen by order from this set.

I see. I found a way to do this from this page of the manual I followed this solution:

```
using PyPlot
using PyCall
cm=get_cmap(:tab20);
cycler = pyimport("cycler")
PyPlot.rc("axes",prop_cycle=cycler.cycler(color=[cm(t/19) for t in 0:19]))
fig, ax = subplots()
x = 1:0.1:10
y = exp.(x/π)
for i=1:20
ax.plot(x/π,i*y, "-o")
end
```

which gives the plot you have shown above! Probably there’s a nicer way to extract the `tab20`

cycler!?

3 Likes