我尝试这样填充两个线条图之间的区域:
import matplotlib.pyplot as plt
import numpy as np
ROCE = np.array([-7.0,-14.0,-11.0,8.0,7.0,17.0,10.0,9.0])
WACC = np.array([4.5, 5.1, 4.7, 3.4, 2.9, 3.7, 3.6, 3.9])
YEAR = np.array([2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019])
fig, ax = plt.subplots(1,1)
ax.plot(YEAR, ROCE, color = 'blue')
ax.plot(YEAR, WACC, color = 'black')
ax.fill_between(YEAR, ROCE, WACC, where=ROCE >= WACC, facecolor='green')
ax.fill_between(YEAR, ROCE, WACC, where=ROCE <= WACC, facecolor='red')然而,我有一个问题,在点的线交叉,可以看到在附加的图像。我想我必须对线点进行插值。你知道怎么解决这个问题吗?
谢谢!
发布于 2020-06-23 07:02:05
默认情况下,fill_between仅查看给定值。但它还可以选择插值,以找到where参数的确切交叉点。
import matplotlib.pyplot as plt
import numpy as np
ROCE = np.array([-7.0,-14.0,-11.0,8.0,7.0,17.0,10.0,9.0])
WACC = np.array([4.5, 5.1, 4.7, 3.4, 2.9, 3.7, 3.6, 3.9])
YEAR = np.array([2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019])
fig, ax = plt.subplots(1,1)
ax.plot(YEAR, ROCE, color = 'blue')
ax.plot(YEAR, WACC, color = 'black')
ax.fill_between(YEAR, ROCE, WACC, where=ROCE >= WACC, interpolate=True, facecolor='green')
ax.fill_between(YEAR, ROCE, WACC, where=ROCE <= WACC, interpolate=True, facecolor='red')
plt.show()

https://stackoverflow.com/questions/62524563
复制相似问题