我正在使用Julia 1.1.0,并希望在其中进行一些绘图。我为此使用了Plots和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))
问题在于带有标记的线变得混乱。我没有找到论据来在第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))
它具有我想要的外观,但现在这些传说都弄糟了。如何从图例中删除标签y2和y3?
答案 0 :(得分:1)
我重新阅读了文档,发现Series的属性label
:
系列的标签,出现在图例中。如果为空,则没有图例 条目已添加。
因此,将标签设置为空字符串""
可以解决问题,而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))