1
したがって、同じx値で複数の曲線を定義していますが、y値は異なります。下の画像は21種類の曲線から構成されています。それらのうちの10個は点線であり、1は実線であり、最後の10は破線である。プロット内のカーブ間の網掛け領域
しかし、画像に見られるように、それはむしろ1つのグラフにあります。あなたは本当にどこに何があるのかを見ることはできません。だから、私が望むのは、最初の10行と最後の10行の間に陰影のある領域があることです。
しかし、私はどのように開始するのかよく分かりません。以下のように、それは今私のコードであるため
です:あなたが最小限であるかを表す配列を決定するために必要な複数の曲線の最小値と最大値の間を埋めるために
import os
import numpy as np
import matplotlib.pyplot as plt
structures = ['Rectum']
patients = ["426"]
color_map = 'nipy_spectral'
color = {'PTV':0.16, 'Rectum':0.80, 'Bladder':0.96}
legends = ['PTV', 'Rectum', 'Bladder']
x = np.loadtxt('dose_gy.txt')
for plot, patient in enumerate(patients):
plot += 1
PATH_TO_YDATA = 'results/Two_Fields/DVH'
for f in sorted(os.listdir(PATH_TO_YDATA), key=lambda f: f.split('_')[-2]):
if f.split('_')[-2] == patient:
for structure in structures:
if f.split('_')[2] == structure:
y = np.loadtxt(PATH_TO_YDATA + '/' + f)
plt.axis([0, 90, 0, 50])
if int(f.split('_')[-1][:-4]) < 90:
plt.plot(x, y * 100, color=plt.get_cmap(color_map)(color[structure]), linestyle='dotted', alpha=0.8, linewidth=2.0)
elif int(f.split('_')[-1][:-4]) > 90:
plt.plot(x, y * 100, color=plt.get_cmap(color_map)(color[structure]), linestyle='dashed', alpha=0.8, linewidth=2.0)
elif int(f.split('_')[-1][:-4]) == 90:
plt.plot(x, y * 100, color=plt.get_cmap(color_map)(color[structure]), linestyle='solid', alpha=1.0, linewidth=3.0, zorder=1000)
plt.title('Patient ' + str(plot))
plt.xlabel("Dose [Gy]", fontsize=14)
plt.ylabel("Volume [%]", fontsize=14)
plt.show()
[fill_between()](http://matplotlib.org/examples/pylab_examples/fill_between_demo.html)私は今、このを見てみました – sascha
。しかし、それはたぶん2行にしか有効ではないようですね?この場合、どのラインが最も低くなるかは事前に分かりませんが、それが最も低いポイントであれば、そのポイントで最も低いラインからシェーディングが開始されますその点で最も高い点に移動します。 –