gpt4 book ai didi

python - 如何在 Python matplotlib 中的曲线下填充彩虹色

转载 作者:太空狗 更新时间:2023-10-29 22:06:51 32 4
gpt4 key购买 nike

我想在曲线下填充彩虹色。实际上函数 matplotlib.pyplot.fill_between 可以用单一颜色填充曲线下的区域。

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 100, 50)
y = -(x-50)**2 + 2500
plt.plot(x,y)
plt.fill_between(x,y, color='green')
plt.show()

是否有旋钮可以将颜色调整为彩虹色?谢谢。

最佳答案

如果您想用一系列矩形“填充”,这很容易破解:

import numpy as np
import pylab as plt

def rect(x,y,w,h,c):
ax = plt.gca()
polygon = plt.Rectangle((x,y),w,h,color=c)
ax.add_patch(polygon)

def rainbow_fill(X,Y, cmap=plt.get_cmap("jet")):
plt.plot(X,Y,lw=0) # Plot so the axes scale correctly

dx = X[1]-X[0]
N = float(X.size)

for n, (x,y) in enumerate(zip(X,Y)):
color = cmap(n/N)
rect(x,0,dx,y,color)

# Test data
X = np.linspace(0,10,100)
Y = .25*X**2 - X
rainbow_fill(X,Y)
plt.show()

enter image description here

您可以通过缩小矩形(即使用更多点)来平滑锯齿状边缘。此外,您可以使用梯形(甚至是插值多项式)来细化“矩形”。

关于python - 如何在 Python matplotlib 中的曲线下填充彩虹色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18215276/

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