7

我在 Julia 1.5 中使用 Plots。如何制作如下所示的 y 刻度?

我们有时会在科学论文中看到具有正确轴类型的图形。

在此处输入图像描述

4

2 回答 2

4

我不知道是否有一种简单快捷的方法,但这是我的解决方案。

首先我们应该安排刻度标签。Plots.jl为我们提供了formatter轴属性。我们可以将此属性设置为一个函数,该函数接受刻度的数值并返回一个字符串作为刻度标签。

x=0:0.2:0.8
y=[1,2,3,4,5] * 10^-8    
plot(x, y, ytick=y, yaxis=(formatter=y->string(round(Int, y / 10^-8))))

为了用正确的比例注释轴,我使用Plots.annotate!and Plots.text,并适当地设置注释的位置和大小。此解决方案的问题是注释可能会溢出绘图区域,如果没有设置标题,可能不会完全可见。如果出现此类问题,您可以设置幻影标题。

using LaTeXStrings    
x = 0:0.2:0.8
y = [1,2,3,4,5] * 10^-8
plot(x, y, yticks = y,  yaxis=(formatter=y->string(round(Int, y / 10^-8))), title="   ")
annotate!([(0, maximum(y) * 1.05, Plots.text(L"\times10^{-8}", 11, :black, :center))])

请注意,我手动处理了从数值到科学计数法的转换。您可以使用Printf模块中的工具自动处理它。

这是最终结果

科学 xtick 的最终结果

于 2021-01-31T13:08:59.050 回答
0

只需添加formatter = :plain到您的绘图功能

plot(x, y, formatter = :plain,)

formatter = identity也是一个选项(用于显示带小数点的数字):

plot(x, y, formatter = identity,)
于 2021-08-19T15:52:38.987 回答