Python 以对数刻度计算数值

Python 以对数刻度计算数值,python,scale,logarithm,natural-logarithm,Python,Scale,Logarithm,Natural Logarithm,我想在位图编辑器中逐像素地重新绘制体重。据我所知,这是一个对数刻度,但什么是对数-二进制或十进制 如何以像素为单位计算线条之间的距离。也许从1数到70比倒过来要好 values = [] for kilos, value in enumerate(range(1, 71)): // some logic values.append([kilos, pixels]) reverse(values) 假设您想要500像素的高度,您可以使用此值来获得间隔: import math

我想在位图编辑器中逐像素地重新绘制体重。据我所知,这是一个对数刻度,但什么是对数-二进制或十进制

如何以像素为单位计算线条之间的距离。也许从1数到70比倒过来要好

values = []
for kilos, value in enumerate(range(1, 71)):
    //  some logic
    values.append([kilos, pixels])
reverse(values)

假设您想要500像素的高度,您可以使用此值来获得间隔:

import math
pixels = 500
offset = math.log(10)
for x in range(10, 71, 10):
    print x, int(pixels * (math.log(x) - offset) / (math.log(70) - offset))
这是输出:

10 0
20 178
30 282
40 356
50 413
60 460
70 500

像素计数只是每个间隔的开始和结束之间的差值。更改500以适合您的应用程序。

由于10到20的距离与20到40的距离相同,我将冒险猜测Log 2。由于Log_n(a)=Log(a)/Log(n),基数无关紧要。