在 Python 中更改图形的 x 轴和 y 轴上的值

Changing the values on the x and y axis of a graph in Python

如果我有类似的东西;

import numpy as np, math as m, matplotlib.pyplot as plt
def test():
    x = [1,2,3]
    y = [m.log(0.1),m.log(0.2),m.log(0.3)]

    fig1 = plt.figure()
    plt.plot(x,y)
    plt.show()

这将显示一个图表,其中 y 轴显示负数。我想知道你如何让图表显示为对数而不是(就像列表 y 最初定义的那样)。

谢谢!

好吧,根据对数的定义,分数的对数是负数。例如10^x=1/2,x必须为负数才能得到分数值。这就是日志背后的想法。所以最好的办法是显示对数刻度,以便显示正分数。

最简单的方法是采用 10^x,其中 x 是每个 y 值的十进制值。然后您将 y 输出为小数,而不是负数。

那么你可以设置.ylabel()为"log scale".

编辑: 我认为您正在寻找的内容已得到 on this Whosebug question 关于制作自定义刻度的答案。您应该能够在答案中使用 yticks 而不是 xticks