擅长:python、mysql、java
<p>主要使用<a href="http://pradhanphy.blogspot.com/2014/06/filling-between-curves-with-color.html" rel="nofollow noreferrer">this approach</a>并对其进行少量调整,可以实现以下目的:</p>
<pre><code>import numpy as np
import matplotlib.pyplot as plt
from matplotlib.path import Path
from matplotlib.patches import PathPatch
x = np.arange(0,10,0.1)
y = 0.5*np.sin(x)+0.6
grad = np.gradient(y)
elevation_origin = -0.05 # set the zero line until which the color map is filled in.
fig,ax = plt.subplots(1,1)
ax.plot(x, y, label='Elevation')
path = Path(np.array([np.append(x,x[::-1]), np.append(y,np.zeros_like(y))]).T)
patch = PathPatch(path, facecolor='none')
ax.add_patch(patch)
im = plt.imshow(grad.reshape(1,y.size), cmap=plt.cm.jet, interpolation='bicubic',
extent=[x[0], x[-1], elevation_origin, np.max(y)],aspect='auto',
clip_path=patch, clip_on=True)
plt.show()
</code></pre>
<p>当然,如果需要,您可以选择不同的颜色贴图,但是<code>jet</code>应该与示例图片匹配。请注意,如果<code>elevation_origin</code>下方有高程,则需要修改此方法。还请注意,通过网络搜索可以找到(至少大部分)</p>