Change the label in plot

Hello,
I am looking for an efficient way to change the label from
image
to something like

operation1
operation2
operation3

but not with the manual labeling as bellow. Because for a more number of operations it seems not very efficient!

using StatsPlots;
plot!(label = ["operation1" "operation2" "operation3" ...])

Does anyone have an idea? Thanks.

A comprehension does it:

label = ["operation$j" for j = 1 : n]

thank you, I already tried that but it looks like this:

image

what am I doing wrong?

Apologies - I forgot that legends use 1xn arrays rather than nx1 vectors. This always trips me up. There is probably a nice one-liner that uses a comprehension to make a 1xn Matrix, but I don’t know the way. But a loop is easy.

What I do in practice is have a little function that makes sure a legend is a Matrix. It passes 1xn matrices through without change, but makes vectors into matrices. So I just call label = make_legend(lbls) each time and don’t have to worry about whether I had a vector or matrix of labels.

label = ["operation$j" for j = (1:8)']

You need an 1xn matrix

4 Likes

Perfect! :+1:
It works exactly the way I want, thank you.

image