[英]Python: Fill in between graphs
我繪制了一個波形和一條水平線,將波形分為上半部分和下半部分。 使用行間填充技術ax.fill_between
,為什么黃色區域看起來不正確? 請幫忙。 TQ。
import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import make_interp_spline as make
xy = [(0,2), (1,3.5), (2,6.25), (3,8.7), (4,7.7),
(5,3), (6,2.5), (7,3.7), (8,4.3), (9,4.5), (10,2)]
X = np.array([x for (x,y) in xy])
Y = np.array([y for (x,y) in xy])
X_new = np.linspace(0,10,1000)
s1 = make(X, Y)
Y_new = s1(X_new)
rms = np.sqrt(np.mean(Y**2))
y_upper = np.maximum(rms, Y_new)
y_lower = np.minimum(rms, Y_new)
fig, ax = plt.subplots(figsize=(8, 8))
#ax.plot(X,Y)
ax.plot(X_new, Y_new, label = 'wave')
ax.hlines(y=rms, xmin=0, xmax=10, linestyles='--')
ax.set_xlim(xmin=0, xmax=10)
ax.set_ylim(ymin=1, ymax=10)
ax.set_xticks([])
ax.set_yticks([])
ax.fill_between(X_new, rms, y_upper, facecolor='blue', alpha=0.5)
ax.fill_between(X_new, X_new, y_lower, facecolor='yellow', alpha=0.5)
plt.show()
你只是在這里打錯了:
ax.fill_between(X_new, X_new, y_lower, facecolor='yellow', alpha=0.5)
應該:
ax.fill_between(X_new, rms, y_lower, facecolor='yellow', alpha=0.5)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.