2015-02-05 297 views
1

如果我有类似的东西;更改Python中图形的x轴和y轴上的值

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最初定义的那样)。

谢谢!

+0

其np.log不m.log – 2015-02-05 17:53:40

+1

请参阅http://stackoverflow.com/a/1183415/2286754 – 2015-02-05 18:05:40

+0

@AdamStone谢谢你,那就是我一直在寻找的。 – mrhappysmile 2015-02-05 19:13:11

回答

2

那么一个分数的日志是负的,通过定义一个日志。例如10^x = 1/2,x 必须为才能得到小数值。这是日志背后的想法。所以你最好的选择是用对数标度显示,以显示正分数。

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

然后您可以将.ylabel()设置为“对数刻度”。

编辑:我想你在找什么的回答on this stackoverflow question有关使定制蜱。你应该能够使用yticks而不是xticks在答案中使用。

+0

是的我知道这些值是负值。我更多地指的是仅仅用ln(...)来制作标签,而不是用于美学/偏好的-ve数字。 – mrhappysmile 2015-02-05 19:12:23