1 回答
TA贡献1860条经验 获得超8个赞
您以错误的顺序绘制并用新的绘制覆盖了以前的绘制。
我试图重新创建一个小示例,其中total_buy1> total_buy0,因此为了获得所需的结果,您首先必须绘制total_buy1 然后total_buy0:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
Colors = [['#0400ff', '#FF0000'],
['#09ff00', '#ff8c00']]
n = 100
rate_buy = np.linspace(0, 1000, 100)
total_buy0 = np.linspace(0, 300, n)[::-1] + np.random.normal(scale=10, size=n)
total_buy1 = np.linspace(0, 600, n)[::-1] + np.random.normal(scale=10, size=n)
ax.plot(rate_buy, total_buy1, color=Colors[1][1], linewidth=0.5, alpha=0.8)
ax.fill_between(rate_buy, 0, total_buy1, facecolor=Colors[1][0], alpha=1)
ax.plot(rate_buy, total_buy0, color=Colors[0][1], linewidth=0.5, alpha=0.8)
ax.fill_between(rate_buy, 0, total_buy0, facecolor=Colors[0][0], alpha=1)
我注意到您Colors[Index][0]
用于两个绘图调用,因此线条和区域不会有不同的颜色。
添加回答
举报