我擁有的數據是範圍,其中分數被分配給該範圍內的所有值。我的數據填寫繪製線下的區域
一個條目是這樣的:
10000 177368 0.150849441498420722141
的第一個值指示起始位置,並在此範圍內的第二結束位置。最後一個值是這個範圍的分數。
在下面的代碼中,我繪製了每個範圍的開始位置和結束位置。 目前這將每個範圍連接到一條線,這是我想要做的一部分,但是我也想填充每條線下的區域。
我還想知道如何一次性繪製這些位置,而不必循環瀏覽列表中的每個條目,然後單獨繪製每個範圍。
import matplotlib.pyplot as plt
range_list = [(10000, 177368, 0.150849441498420722141),
(227417, 267627, 0.148806758534977628949),
(267628, 267633, 1),
(267642, 267660, 1),
(267661, 267670, 1),
(317719, 471319, 0.125380779728419072816),
(521368, 2634121, 0.292530330836878571521),
(2634131, 2634171, 1),
(2684220, 3845219, 0.332501576911355845034),
(3995268, 13052949, 0.8),
(13102998, 13219863, 0.304339098079899339488),
(13319912, 13557063, 0.19949610114016369522),
(13557092, 13557095, 1),
(13607162, 17125609, 0.300713750216281716643),
(17175658, 29878033, 0.306781992901534461549),
(30028082, 103863857, 0.415235012665315250668),
(203863857, 233863857, 0.415235012665315250668)]
plt.figure(figsize=(10, 5), facecolor='w')
plt.xlim([0, 250000000])
plt.ylim([0, 1])
for i in range(0, len(range_list)):
plt.fill((range_list[i][0], range_list[i][1]),
(range_list[i][2],range_list[i][2]), color='g')
plt.show()
UPDATE:
我能得到什麼,如果我按照雅各布的方向這是我想要的東西。
UPDATE:
下面的方法似乎與範圍的少量很好地工作。但是,如果我使用更大的範圍(〜100k),則需要很長時間。有沒有另一種方法可以更有效地完成?
如果使用'fill_between'而不是'fill',則下面的區域將被填充 – Jakob
我已經添加了我想要做的概念圖。 – Mvsm
@Jakob嗯,我想我需要更深入地閱讀文檔.. – Mvsm