Подавление некоторых надписей в легенде или размещение выборочных маркеров - PullRequest
1 голос
/ 08 мая 2019

Я использую Julia 1.1.0 и хочу сделать в ней несколько заговоров.Для этого я использую Графики и pyplot.

У меня есть два данных, которые я хочу построить с одинаковым стилем и цветом, различая их маркерами.

Вот пример:

using Plots
pyplot()
nf = 150;
freq = exp10.(range(2, stop=6.4, length=nf)); #logspace
foo1 = (freq*2 .- 3);
foo2 = (freq .- 10);
plot(freq, foo1, label="foo 1", line=(1, :black, :solid), xaxis=:log, yaxis=:log)
plot!(freq, foo2, label="foo 2", line=(1, :black, :solid), marker=(:circle, :black, 3, 0,5))

plot 1

Проблема в том, что линия с маркерами становится запутанной.Я не нашел аргумента для установки маркера в каждую n- th точку (есть ли она?)

Затем я попытался сгенерировать график с линией и без маркеров, используя полные данные,затем график только с маркерами (без линий) с выборочными данными, как показано ниже:

plot(freq, foo1, label="foo 1", line=(1, :black, :solid), xaxis=:log, yaxis=:log)
plot!(freq, foo2, line=(1, :black, :solid))
r = 1:10:nf;
plot!(freq[r], foo2[r], line=(false), marker=(:circle, :black, 3, 0,5))
plot!(freq[1:1:2], foo2[1:1:2], label="foo2", line=(1, :black, :solid), marker=(:circle, :black, 3, 0,5))

plot 2

Это выглядит так, как я хочу, нотеперь легенды перепутаны.Как я могу подавить метки y2 и y3 из легенды?

1 Ответ

1 голос
/ 09 мая 2019

Я перечитал документы и обнаружил, что для атрибута label из Series :

Метка для серии, которая появляется в легенде. Если пусто, нет легенды запись добавлена.

Таким образом, создание метки пустой строкой "" решает проблему, тогда как label=false или label=nothing - нет.

plot(freq, foo1, label="foo 1", line=(1, :black, :solid), xaxis=:log, yaxis=:log)
plot!(freq, foo2, line=(1, :black, :solid), label="")
r = 1:10:nf;
plot!(freq[r], foo2[r], line=(false), marker=(:circle, :black, 3, 0,5), label="")
plot!(freq[[1,11]], foo2[[1,11]], label="foo 2", line=(1, :black, :solid), marker=(:circle, :black, 3, 0,5))

plot

...