2015-02-05 178 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