如何在 Julia 图中制作科学的 y-ticks?
How can I make scientific y-ticks in Julia plots?
我在 Julia 1.5 中使用 Plots。
如何制作如下所示的 y 刻度线?
我们有时会在科学论文中看到轴类型正确的图。
我不知道是否有简单快捷的方法,但这是我的解决方案。
首先我们应该安排刻度标签。 Plots.jl
为我们提供了 formatter
轴属性。我们可以将此属性设置为一个函数,该函数采用刻度的数值和 returns 字符串作为刻度标签。
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!
和 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
模块中的工具自动处理它。
这是最终结果
只需将 formatter = :plain
添加到您的 plot function:
plot(x, y, formatter = :plain,)
formatter = identity
也是一个选项(用于显示带小数点的数字):
plot(x, y, formatter = identity,)
我在 Julia 1.5 中使用 Plots。 如何制作如下所示的 y 刻度线?
我们有时会在科学论文中看到轴类型正确的图。
我不知道是否有简单快捷的方法,但这是我的解决方案。
首先我们应该安排刻度标签。 Plots.jl
为我们提供了 formatter
轴属性。我们可以将此属性设置为一个函数,该函数采用刻度的数值和 returns 字符串作为刻度标签。
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!
和 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
模块中的工具自动处理它。
这是最终结果
只需将 formatter = :plain
添加到您的 plot function:
plot(x, y, formatter = :plain,)
formatter = identity
也是一个选项(用于显示带小数点的数字):
plot(x, y, formatter = identity,)