gpt4 book ai didi

python 需要将 "linspace"转换成更多的 "logarithmic"

转载 作者:行者123 更新时间:2023-12-04 03:26:11 24 4
gpt4 key购买 nike

请原谅,我的数学一直很差,现在正尝试通过编码来学习一些 Python(以及一些数学)。

我有这个:

import numpy as np
import matplotlib.pyplot as plt

whole = 1 # percentage: 1 = 100%, 0.1 = 10% ecc
nparts = 10 # how many "steps" we want to use
origin = 100 # starting value we

ranged = origin * whole # defining the percentage of our starting value

values = np.linspace(origin - ranged/2, origin + ranged/2, nparts * 2)

r = []
g = []
for v in values:
if v > origin:
r.append(v)
#reds = f"{v} is {100*(v - origin)/origin}% of {origin}"
#print(reds)

else:
g.append(v)
#greens = f"{v} is {100*(v - origin)/origin}% of {origin}"
#print(greens)


print("reds")
print(r)
print("greens")
print(g)

最后这些 print(g) and print(r)输出数值结果。

如果我绘制它,您可以清楚地看到它的作用。

axes = plt.gca()

#origin BLUE
plt.axhline(y=origin, color='b', linestyle='-')

#reds
for i in r:
plt.axhline(y=i, color='r', linestyle='-')
#greens
for i in g:
plt.axhline(y=i, color='g', linestyle='-')

plot

所以你可以看到给定一个 origin (蓝线)并给出 +/- 百分比 whole它创建 n 行 ( nparts ) 和 reds if they are > origingreen if < origin线性传播它们 values = np.linspace(origin - ranged/2, origin + ranged/2, nparts * 2)关于这个whole来自 origin 的百分比值

现在我的问题是:我怎样才能以对数方式展开这些线(别误会我的意思,我的数学很差,我什至不知道我要找的东西是否与对数相关)我想实现这样的目标(我对绘制的图像进行了 Photoshop)。我真的很想保留那个 whole也许能够添加一个新的 variable “控制”这种对数扩散

基本上我需要找到一种方法来找到另一个函数来替换 values = np.linspace(origin - ranged/2, origin + ranged/2, nparts * 2)以达到下面所附的预期结果。我尝试了 np.geomspace 和 np.logspace 都没有成功,也许我只是不好或者我需要找到另一种方法来做到这一点。

期望的结果: desired result

你能帮我解决这个问题吗?非常感谢。

最佳答案

您可以将任何 linspace 传递给 np.log。这将给出每个点的对数。要获得特定范围内的结果,您可以使用线性变换:除以最大值并乘以所需范围,或者添加一个基线值。

例如:

values = np.log(np.linspace(1, 10, nparts))

r = 150 - 50 * (values / values[-1])
g = 50 + 50 * (values / values[-1])

这将导致以下情节:

logplot

如果您需要包含 originwhole 变量,这是一种方法:

values = np.log(np.linspace(1, 10, nparts))
half_range = origin * whole / 2

g = origin + half_range * (1 - values / values[-1])
r = origin * 2 - g

关于python 需要将 "linspace"转换成更多的 "logarithmic",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67557856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com