5

我正在使用 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))

情节 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))

情节2

它有我想要的外观,但现在传说搞砸了。我怎么能从图例中抑制标签 y2 和 y3 ?

4

1 回答 1

7

我重新阅读了文档,发现对于labelSeries属性:

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

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

阴谋

于 2019-05-08T21:05:05.320 回答