我讨厌那些带有以下标签的(半/对数)对数图:10^⁻1、10⁰ 和 10¹ 标签。
有一个很好的方法来改变仅这些,简单地说:0.1、1和10好吗?
plot(x, y, yscale=:log10, label="", yformatter = yi -> yi==0.1 ? "0.1" : yi==1 ? "1" : yi==10 ? "10" : yi)
完成了工作的部分,但是如何保持 |p|>1 的默认 10^p 格式?
你可以这样写:
function yformatter(yi)
yi < 1.0 && return string(yi)
yi <= 10 && return string(round(Int,yi))
nums = [['¹','²','³'] ; '⁴':'⁹']
return "10$(nums[round(Int,log10(yi))])"
end
现在你有:
julia> yformatter.([0.1, 1, 10, 100, 1_000, 10_000, 100_000])
7-element Vector{String}:
"0.1"
"1"
"10"
"10²"
"10³"
"10⁴"
"10⁵"