4

这是 julia 的 Plots 库使用xaxis=:log属性生成的图:

在此处输入图像描述

该图具有均匀间隔的刻度线,标签为 10^0.25。有时这可能很有用,但我觉得这个情节有点令人困惑,因为大多数人不知道 10^0.25 的值而不查找它。

我希望 x 轴具有对数间隔的刻度,表示 x 轴上数量的均匀间隔。这是一个简单的示例来说明我的意思,使用semilogxPython 的matplotlib图书馆生成:

在此处输入图像描述

在这个图中,x 轴在 x=1、x=2、x=3 等处有刻度,我发现这对我生成的数字更有用。这可以在 Julia 中使用 Plots 实现吗?

4

1 回答 1

4

正如讨论主题中所说,默认的滴答行为(对于大多数后端)与您的预期不同。

有一种方法可以实现您想要的滴答行为。xticks您可以通过(ytickszticks) 参数手动设置刻度位置和刻度标签。

例如,以下代码段将按照您在帖子中的要求将刻度线放置在等间距的点上。

x = 1:0.1:10;
y = rand(length(x));

plot(x, y, xscale=:log10, xticks=(1:10, 1:10))

元组的第一个元素是刻度的位置,第二个元素是标签。虽然我使用范围对象作为标签,但您可以使用Strings 或LaTeXStrings等数组。

您可能还想查看Julia Plots 文档中的minorticksxminorticks针对您的情况)和minorgrid属性。

于 2019-05-24T21:30:20.120 回答