2015-02-05 5 views
1

если бы у меня было что-то типа;Изменение значений на оси x и y графика в 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).

Спасибо!

+0

его np.log не m.log –

+1

См. Http://stackoverflow.com/a/1183415/2286754 –

+0

@AdamStone спасибо, вот что я искал. – mrhappysmile

ответ

2

Ну лог фракции отрицательный, по определению журнала. Например, 10^x = 1/2, x должен быть отрицательным, чтобы получить дробное значение. Это идея журнала. Таким образом, ваш лучший выбор - отображать с помощью шкалы журнала, чтобы он отображал положительные дроби.

Самый простой способ сделать это - взять 10^x, где x - десятичное значение, из каждого значения y. Затем вы получите y-вывод как десятичные числа вместо отрицательных чисел.

Тогда вы можете установить .ylabel() как «шкалу журнала».

Редактировать: Я думаю, что вам нужны ответы on this stackoverflow question о создании пользовательских клещей. Вы должны использовать в качестве ответа yticks вместо xticks.

+0

Да, я понимаю, что значения будут отрицательными. Я больше говорю о том, чтобы просто делать метки в терминах ln (...), а не как -все цифры для эстетики/предпочтения больше всего на свете. – mrhappysmile