簡體   English   中英

Python:在圖之間填充

[英]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, [0]*len(X_new), y_lower, facecolor='yellow', alpha=0.5)

好吧,看到另一個答案,這取決於你想要“填充”什么...... :)

你只是在這里打錯了:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM