1
所以我有幾條曲線由相同的x值定義,但是具有不同的y值。下面的圖片由21條不同的曲線組成。其中10個是虛線,1個是實體,最後10個是虛線。繪圖中曲線之間的陰影區域
但是,從圖像中可以看出,這只是一張圖。你無法真正瞭解到處都是什麼。所以我希望在前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
我試着現在看到的這個。但它似乎只適用於兩條線?在這種情況下,我不會預先知道哪條線是最低線,並且如果它是所有點的最低點,那麼當發生這種情況時,陰影線應該從當前最低點的線開始,達到當時最高點。 –