Julia绘图工具Makie
初步
【Makie】是比Plots更加强大的可视化库,和Plots类似,它也支持多种后端
- CairoMakie:非动态二维图,能制作出版质量图形。
- GLMakie:基于OpenGL,性能强大,可以制作三维图形, 可以制作动态交互图形。 但不擅长制作矢量图。
- WGLMakie:支持在网页中的交互图形。
- RPRMakie:使用RadeonProRender引擎, 可以制作光线追踪图像。
其完整的绘图流程为创建窗口->添加坐标->绘制图像,示例如下
] add GLMakie # 添加库,然后退格键回到命令行
using GLMakie
fig= Figure(); # 创建并弹出窗口
display(fig); # 如果fig关闭了,可重新弹出
ax = Axis(fig[1,1]); # 在窗口中添加一个坐标轴
xs = 0:0.1:7;
ys = sin.(xs);
plot!(ax, xs, ys) # 如果在
plot(xs, ys)
上述代码中演示了两种绘图方案,一种在已有的坐标系中绘制,相当于改动了现有的图像,故而需要加感叹号;另一种独立绘图,无需加感叹号,也无需创建Figure和Axis。
出图如下,和Plots不同,该图提供交互功能,包括窗口拉伸,左键画框可以缩放,右键拖拽可以移动,【Ctrl+左键单击】可以复原。

风格定制
Makie可通过Theme 系统和绘图函数参数来定制图像风格,示例如下

代码为
set_theme!(
font="Times New Roman", # 一般只需设置字体即可
fontsize=14, # 全局默认字号
titlefont="Times New Roman Bold", # 标题用粗体
titlefontsize=16,
labelfontsize=12,
tickfontsize=10
)
fig = Figure(size=(600, 400));
ax = Axis(fig[1, 1],
xlabel="Time (s)",
ylabel="Amplitude",
title="Style Test")
lines!(ax, xs, ys;
linestyle=:solid,
linewidth=2.5,
linecap=:round, # :round, :square, :butt
color=:blue,
transparency=false,
alpha=0.9
)
fig
其中,【set_theme】用于设置图像风格,上例中,将字体设为Times New Roman,并设置了字体尺寸、标题字体尺寸等。
在【Axis】中,添加了 x , y x,y x,y轴的标签,以及标题。
最后,lines绘图时,通过linstyle来定制绘图线型,:solid为实线,此外还支持:dash, :dot, :dashdot, :dashdotdot等选择。
三维图
Makie同样可以绘制三维图像,示例如下,从观感上来说,要比Matplotlib好很多,而且在交互式操作时非常地丝滑

其函数表达式为
z = sin ( x 2 + y 2 ) x 2 + y 2 z=\frac{\sin(\sqrt{x^2+y^2})}{\sqrt{x^2+y^2}} z=x2+y2sin(x2+y2)
绘制代码如下
x = y = range(-5, 5, length=100)
z = [sin(sqrt(xi^2 + yi^2)) / sqrt(xi^2 + yi^2 + 1e-6) for xi in x, yi in y]
fig = Figure(size=(800, 600))
ax = Axis3(fig[1, 1],
xlabel="x", ylabel="y", zlabel="f(x,y)",
title="3D Surface",
elevation=π/6, azimuth=π/4) # 调整视角
surface!(ax, x, y, z;
colormap=:plasma,
transparency=true,
colorrange=(-1, 1))
fig
其中Axis3用于指明3D坐标系,surface为3D曲面图的绘制函数。
小结
Makie是Julia语言中强大的可视化库,支持多种后端:CairoMakie(高质量2D图)、GLMakie(3D交互图)、WGLMakie(网页交互图)和RPRMakie(光线追踪)。绘图流程包括创建窗口、添加坐标轴和绘制图像,支持两种绘图方式:修改现有图像(带!)或独立绘图。Makie提供交互功能如缩放、移动和重置视图。 通过Theme系统可定制风格,如设置字体、字号和标题样式。绘图函数参数可调整线型、宽度和颜色等。3D绘图使用Axis3坐标系和surface函数,支持视角调整和颜色映射。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)