Julia:Plots 包的属性汇总

简介: 这篇文章是 Julia 的 Plots 包的各种属性的汇总

这篇文章是 Julia 的 Plots 包的各种属性的汇总,实际上应该算是文档里面的一个翻译和整理。

1/ 属性

1.1/ 属性的介绍

在 Plots 上,输入的数据都有固定的位置(例如,在 plot(y) 里面的 y),而属性是以关键词的方式传递的(例如,plot(y, color=:blue))。在 REPL 中执行 using Plots 之后,可以使用 plotattr() 打印 series, plots, subplots, axes 的所有的属性进行查看:

# Valid Operations
plotattr(:Plot)
plotattr(:Series)
plotattr(:Subplot)
plotattr(:Axis)

获得属性列表后,您可以使用特定属性的别名或调查特定属性以打印该属性的别名及其描述。

julia> # Specific Attribute Example
       plotattr("size")
size {NTuple{2,Int}}
sizes, windowsize, wsize

(width_px, height_px) of the whole Plot
Plot attribute,  default: (600, 400)

1.2/ 别名(Aliases)

关键字可以通过别名机制(alias mechanic),或者可以叫做「缩写」,采用一系列值。 例如,plot(y, color=:blue) 实际上被解释为 plot(y, seriescolor=:blue)。 每个属性都有许多别名(请参见下面的图表),可以使用这些别名来避免因忘记参数名称而不断查找绘图 API 文档的痛苦。 ccolorseriescolor 都表示相同的意思,实际上它们最终会转换为更精确的属性 linecolormarkercolormarkerstrokecolorfillcolor(如果需要改变这些属性的话,也可以覆盖它们)。

一些建议:如果只是为了某个例子的可视化,不会大量重复的用到,可以用别名去指定关键词,但是对于一些长期代码,需要稳定性的代码(像是代码库),最好还是使用属性的全称,避免混淆。

1.3/ 魔术参数(Magic Arguments)

一些参数包含用于同时设置许多相关参数的智能简写。Plots 使用类型检查和多重分派来巧妙地「找出」哪些值适用于哪个参数。 传入一组值。 在处理之前,单个值将首先包装在一个元组中。

axis (and xaxis/yaxis/zaxis)

传入一个 xaxis 参数设定的元组可以快速地定义 xlabel, xlims, xticks, xscale, xflip, xtickfont,下面的两个表达是等价的:

plot(y, xaxis = ("my label", (0,10), 0:0.5:10, :log, :flip, font(20, "Courier")))

plot(y,
    xlabel = "my label",
    xlims = (0,10),
    xticks = 0:0.5:10,
    xscale = :log,
    xflip = true,
    xtickfont = font(20, "Courier")
)
yaxiszaxis 的工作机制是类似的,而如果使用 axis 则会对所有的坐标轴都起作用。

给参数 xticks(或 ytickszticks)传入一个元组来改变坐标轴刻度和标签的位置:

plot!(xticks = ([0:π:3*π;], ["0", "\\pi", "2\\pi"]))
yticks!([-1:1:1;], ["min", "zero", "max"])

line

为线条设置属性。缩写:l. 以下表达等价:

plot(y, line = (:steppre, :dot, :arrow, 0.5, 4, :red))

plot(y,
    seriestype = :steppre,
    linestyle = :dot,
    arrow = :arrow,
    linealpha = 0.5,
    linewidth = 4,
    linecolor = :red
)

fill

区域填充的属性设置。缩写:f, area. 以下表达等价:

plot(y, fill = (0, 0.5, :red))

plot(y,
    fillrange = 0,
    fillalpha = 0.5,
    fillcolor = :red
)

marker

为 marker 设置属性。缩写:m, mark. 以下表达等价:

scatter(y, marker = (:hexagon, 20, 0.6, :green, stroke(3, 0.2, :black, :dot)))

scatter(y,
    markershape = :hexagon,
    markersize = 20,
    markeralpha = 0.6,
    markercolor = :green,
    markerstrokewidth = 3,
    markerstrokealpha = 0.2,
    markerstrokecolor = :black,
    markerstrokestyle = :dot
)

1.4/ 需注意的参数

以下一些参数可能是不常注意到的重要参数:

scatter(y, thickness_scaling = 2)  # 将字体大小和线宽增加 2 倍
# 适合演示文稿和海报
# 如果后端不支持此功能,请使用缩放默认字体
# 大小的函数 scalefontsizes(2)。


scatter(y, ticks=:native)  # 让后端自己计算刻度。
# 如果使用交互式后端执行鼠标缩放的话推荐这样

scatter(rand(100), smooth=true)  # 将回归线添加到图中
目录
相关文章
|
2天前
|
分布式计算 并行计算 Unix
|
10天前
|
JavaScript 编译器
TS编译设置和配置文件属性解读
TS编译设置和配置文件属性解读
|
4月前
|
索引
Julia 数组基本函数
摘要: 了解 Julia 中的数组基本函数:eltype() 获取元素类型,length() 返回元素数量,ndims() 给出维数,size() 和 size(A,n) 用于获取维度大小,axes() 和 axes(A,n) 提供索引范围,eachindex() 用于遍历,stride() 和 strides() 描述元素间隔。
|
4月前
|
Linux
如何在Linux系统上查看CPU使用率?
以上命令可以帮助你监视和分析Linux系统中的CPU使用率,可以根据需要选择合适的命令进行查看。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
70 0
|
4月前
|
缓存 NoSQL Go
Go语言中的分布式锁实现与选型
【5月更文挑战第6天】本文探讨了Go语言中分布式锁的实现,包括Redis、ZooKeeper和Etcd三种方式,强调了选型时的性能、可靠性和复杂度考量。通过代码示例展示了Redis分布式锁的使用,并提出了避免死锁、公平性等问题的策略。结论指出,开发者应根据业务需求选择合适实现并理解底层原理,以确保系统稳定和高效。
225 0
|
2月前
|
Java 调度 开发者
如何在Java中实现任务调度
如何在Java中实现任务调度
|
4月前
|
Web App开发
Google Chrome 浏览器 119.0.6045.106 版本提示 STATUS_INVALID_IMAGE_HASH 崩溃
Google Chrome 浏览器 119.0.6045.106 版本提示 STATUS_INVALID_IMAGE_HASH 崩溃
125 0
|
Ubuntu 开发工具
Julia:DiffEqSensitivity 包的预编译(precompiling)失败
我更新了某个包,然后在预编译的时候,出现了 `Failed to precompile` 的报错。在 `using DiffEqSensitivity` 的时候,出现了 `ERROR: UndefVarError: SciMLBase not defined.` 的报错,然后无法完成 precompile。
137 0
xrandr调节屏幕亮度 linux
xrandr调节屏幕亮度 linux
xrandr调节屏幕亮度 linux
|
资源调度 Linux
使用slurm脚本在Linux服务器上提交LS-Dyna作业
使用slurm脚本在Linux服务器上提交LS-Dyna作业
1140 0