脉冲星和中子星/Julia 入门教程 - 脉冲星天文学家
外观
< 脉冲星和中子星
Julia 是一种相对较新的语言,它非常强大,但目前文档难以查找和理解。在这里,我们提供一些对脉冲星天文学家感兴趣的笔记。维基百科上的许多图都是使用 Julia 制作的。Julia 可以轻松地 [下载 并安装到大多数计算机上。它有自己的强大例程,但也可以直接使用 Python 或 C 代码。它专为并行或分布式计算而设计,程序员为代码运行的速度感到自豪——它比 Python 快得多。
Julia 可以从个人电脑运行,使用 Julia 笔记本或使用网络托管服务。Julia 可以用作简单的计算器
julia> 3+3
6
julia> x=10
10
julia> x+2
12
也可以编写代数表达式(比大多数语言更简单)
julia> x=10
10
julia> 2x
20
julia> 2*x
20
字符串可以轻松创建
julia> x="Hello";
julia> x
"hello"
请注意行末使用“;”。如果使用,则该行不会输出任何内容。
julia> x=linspace(0,99,100)
julia> x+10
将分配 100 个值,从 0 到 99。第二个命令将为数组中的每个元素加 10。
要设置初始化为零的数组,我们可以使用
julia> x=zeros(100)
将分配一个包含 100 个零的数组。
要分配均值为零、方差为 1 的随机高斯噪声,我们可以编写
julia> x = randn(100) # Gaussian, random noise
julia> y = rand(100) # Linear, random deviates between 0 and 1
请注意 # 符号用作注释。
在 Julia 中制作图表有多种方法,但它们需要添加新的包。这些包是
- PyPlot
- Winston
- Gaston
要安装包,例如:
julia> Pkg.add("Gaston")
Gaston 基于 gnuplot,gnuplot 需要在您的系统上独立安装。
julia> Pkg.add("Gaston") # This only needs to be done once
julia> using Gaston;
julia> set_terminal("x11");
julia> x=randn(1000); # Set some random numbers
julia> plot(x) # Note not using a semi-colon here as we want to see the result
我们也可以使用两个数组
julia> using Gaston;
julia> set_terminal("x11");
julia> x=linspace(0,100,1000);
julia> y=randn(1000); # Set some random numbers
julia> plot(x,y)
这将生成 MATLAB 风格的图表
julia> using Winston;
julia> x=linspace(0,100,1000);
julia> y=randn(1000); # Set some random numbers
julia> plot(x,y,"b") # Plot as a blue line
julia> plot(x,y,"r") # Plot as a red line
julia> plot(x,y,"ro") # Plot as red open circles
julia> plot(x,y,"x") # Plot as red crosses
julia> oplot(x,y,"b") # Overplot the current figure using a blue line
julia> xlabel("My x-label") # Add an x-label to the current figure
julia> ylabel("My y-label (\\mus s)") # Add a y-lable to the current figure. Note the use of LaTeX symbols
julia> title("This is my title") # Add a title to the plot
julia> savefig("try.png") # Save a png file of the figure in the local directory
图表也可以从多个组件构建,如下所示
julia> using Winston;
julia> p = FramedPlot(xlabel="x-label",ylabel="y-label",xlog=true,ylog=true,xrange=(9e-4,20),yrange=(1e-14,1e-9)) # Note the setting of labels and logarithmic scaling and ranges.
julia> x = abs(randn(1000))
julia> y = abs(randn(1000))*1e-11
julia> pts = Points(x,y)
julia> add(p,pts) # This will draw the figure as requested
julia> closefig() # This closes the current figure
julia> x2 = abs(randn(1000))
julia> y2 = abs(randn(1000))*1e-11
julia> l = Curve(x2,y2,"type","dotted") # this will now add a dotted line
julia> setattr(pts,label="My data points"); # Set a label
julia> setattr(l,label="a dotted line");
julia> leg = Legend(.1,.9, {pts,l})
julia> add(p,pts,l,leg)
Pyplot 使用 python 绘图例程
julia> using PyPlot
julia> x=linspace(0,100,1000);
julia> y=randn(1000); # Set some random numbers
julia> p = plot(x,y)
julia> xlabel("My x label")
julia> ylabel("My y label")
julia> title("My title")
julia> grid("on")
julia> cla() # Clear the figure
julia> p = plot(x,y,linestyle="-.",marker="None",label="Base Plot",color="red") # Plot using dotted lines in red
可以使用以下方法绘制 Aitoff 投影
julia> using PyPlot
julia> subplot(projection="aitoff")
julia> grid("on")