在图例中隐藏一些标签或放置采样的标记

时间:2019-05-08 19:51:56

标签: julia plots.jl

我正在使用Julia 1.1.0,并希望在其中进行一些绘图。我为此使用了Plotspyplot后端。

我有两个要绘制的数据,它们具有相同的线型和颜色,但标记之间存在差异。

这里是一个例子:

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- 个点上放置一个标记(有一个?)

然后我尝试使用完整数据生成一个带有线且没有标记的图,然后生成一个仅带有标记(无线)并带有采样数据的图,如下所示

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 个答案:

答案 0 :(得分:1)

我重新阅读了文档,发现Series的属性label

  

系列的标签,出现在图例中。如果为空,则没有图例   条目已添加。

因此,将标签设置为空字符串""可以解决问题,而label=falselabel=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