0

我想将线性图转换为指数图。在 SCORE 的 x 轴值上生成 2 个值,范围从[-1,-0.9,-0.8,..0,0.1,0.2,....1]和 y 轴值范围从[0,255]

生成的线性图是

在此处输入图像描述

我希望生成下图中给出的指数图

在此处输入图像描述

我想缩放 y 值,使其具有指数形状,最大值为255.

4

1 回答 1

2

您只需要缩放 y 轴的值,但首先您需要做一些简单的数学运算。由于您希望最大 y 值为 255,因此您需要解决:

eq1

这导致:

eq2

因此,您必须按此数字进行缩放。现在让我们看看代码

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-1,1,21)
y = np.linspace(0,255,21)

#scaling here
y = (np.e**(np.log(255)/255))**y

plt.xlabel("Score")
plt.ylabel("Pixel")
plt.plot(x,y)
plt.show()

在此处输入图像描述

于 2020-12-01T06:38:51.653 回答