1

我目前正在阅读一本书(BRML),其中有一个用 Julia 编写的演示(地震演示,练习 1.22)。我以前从未使用过 Julia(尽管相当广泛地使用 Python 和其他语言),所以我是一个完全的菜鸟。

plot(x,y,".")该行在以下代码中究竟做了什么:

Pkg.add("Pkg")
using Pkg
Pkg.add("PyPlot")

S=5000 # number of points on the spiral
x=zeros(S); y=zeros(S)
for s=1:S
    theta=50*2*pi*s/S;  r=s/S
    x[s]=r*cos(theta); y[s]=r*sin(theta)
end
plot(x,y,".")

我了解在那之前所做的一切,但是我不确定那条特定的行做了什么。我自己看不到的原因是因为当我尝试在在线Julia 编译器上运行它时,我收到以下错误:

INFO: Initializing package repository /home/cg/root/4655378/.julia/v0.6
INFO: Cloning METADATA from https://github.com/JuliaLang/METADATA.jl
ERROR: LoadError: GitError(Code:ERROR, Class:Net, curl error: Could not resolve host: github.com
)
Stacktrace:
 [1] macro expansion at ./libgit2/error.jl:99 [inlined]
 [2] clone(::String, ::String, ::Base.LibGit2.CloneOptions) at ./libgit2/repository.jl:276
 [3] #clone#100(::String, ::Bool, ::Ptr{Void}, ::Nullable{Base.LibGit2.AbstractCredentials}, ::Function, ::String, ::String) at ./libgit2/libgit2.jl:562
 [4] (::Base.LibGit2.#kw##clone)(::Array{Any,1}, ::Base.LibGit2.#clone, ::String, ::String) at ./<missing>:0
 [5] (::Base.Pkg.Dir.##8#10{String,String})() at ./pkg/dir.jl:55
 [6] cd(::Base.Pkg.Dir.##8#10{String,String}, ::String) at ./file.jl:70
 [7] init(::String, ::String) at ./pkg/dir.jl:53
 [8] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{String,N} where N) at ./pkg/dir.jl:28
 [9] add(::String) at ./pkg/pkg.jl:117
while loading /home/cg/root/4655378/main.jl, in expression starting on line 1
4

1 回答 1

2

如第三行所示,本书使用的是PyPlot,它基本上是Python 的.pyplot

所以,我们可以参考pyplot 的文档来弄清楚那行代码是如何工作的。但正如该页面中提到的,pyplot正在尝试模拟 MATLAB 的plot功能,在这种情况下,他们的帮助页面更易于导航。正如那里提到的,

plot(X,Y) 创建 Y 中数据与 X 中相应值的二维线图。

此外plot(X,Y,LineSpec)“使用指定的线型、标记和颜色创建绘图。” 单击 LineSpec,我们可以在第二个表中看到'.'标记之一,带有描述Point和生成的标记一个黑色实心点。因此plot(x,y,"."),在 x 和 y 坐标指定的点处创建一个带有点作为标记的图。点标记图

我们也可以尝试其他标记之一,例如。plot(x,y,"+")而是创建这个: 在此处输入图像描述

如果你仔细看,你会发现这些点是用+符号标记的。

于 2021-11-19T03:30:56.133 回答