2024-09-30 02:18:09 发布
网友
我想用Python和Matplotlib绘制一个EPSgram(见下文)。在
^{}函数只绘制四分位数(0、25、50、75、100)。那么,我怎么能再加两个盒子呢?在
我做了一个样品,如果你还好奇的话。它使用^{},但您可能从其他地方获得这些数字:
from random import random import numpy as np import matplotlib.pyplot as plt from scipy.stats import scoreatpercentile x = np.array([random() for x in xrange(100)]) # percentiles of interest perc = [min(x), scoreatpercentile(x,10), scoreatpercentile(x,25), scoreatpercentile(x,50), scoreatpercentile(x,75), scoreatpercentile(x,90), max(x)] midpoint = 0 # time-series time fig = plt.figure() ax = fig.add_subplot(111) # min/max ax.broken_barh([(midpoint-.01,.02)], (perc[0], perc[1]-perc[0])) ax.broken_barh([(midpoint-.01,.02)], (perc[5], perc[6]-perc[5])) # 10/90 ax.broken_barh([(midpoint-.1,.2)], (perc[1], perc[2]-perc[1])) ax.broken_barh([(midpoint-.1,.2)], (perc[4], perc[5]-perc[4])) # 25/75 ax.broken_barh([(midpoint-.4,.8)], (perc[2], perc[3]-perc[2])) ax.broken_barh([(midpoint-.4,.8)], (perc[3], perc[4]-perc[3])) ax.set_ylim(-0.5,1.5) ax.set_xlim(-10,10) ax.set_yticks([0,0.5,1]) ax.grid(True) plt.show()
我做了一个样品,如果你还好奇的话。它使用^{} ,但您可能从其他地方获得这些数字:
相关问题 更多 >
编程相关推荐