【发布时间】:2021-06-09 15:27:27
【问题描述】:
基本上,我想在具有不同百分位数的两个变量之间绘制散点图,我已经使用以下玩具代码绘制了散点图,但我无法为不同的百分位数(分位数)绘制它。
quantiles = [1,10,25,50,50,75,90,99]
grays = ["#DCDCDC", "#A9A9A9", "#2F4F4F","#A9A9A9", "#DCDCDC"]
alpha = 0.3
data = df[['area_log','mr_ecdf']]
y = data['mr_ecdf']
x = data['area_log']
idx = np.argsort(x)
x = np.array(x)[idx]
y = np.array(y)[idx]
for i in range(len(quantiles)//2):
plt.fill_between(x, y, y, color='black', alpha = alpha, label=f"{quantiles[i]}")
lower_lim = np.percentile(y, quantiles[i])
upper_lim = np.percentile(y, 100-quantiles[i])
data = data[data['mr_ecdf'] >= lower_lim]
data = data[data['mr_ecdf'] <= upper_lim]
y = data['mr_ecdf']
x = data['area_log']
idx = np.argsort(x)
x = np.array(x)[idx]
y = np.array(y)[idx]
data = df[['area_log','mr_ecdf']]
y = data['mr_ecdf']
x = data['area_log']
plt.scatter(x, y,s=1, color = 'r', label = 'data')
plt.legend()
# axes.set_ylim([0,1])
enter image description here 数据链接:here
我想绘制这样的图(First- (1,1)):
【问题讨论】:
-
Matplotlib 有这个using
fill_between的示例代码。策略是先计算和绘制 alpha 值较低的 1-99% 波段,然后是 alpha 值较高的 10-90% 波段,...,我认为这很清楚。 -
这能回答你的问题吗? Plotting stochastic processes in Python
-
这与建议的副本 (Plotting stochastic processes in Python) 中的问题 非常 不同,因为在 Plotting stochastic processes in Python 中,x 变量是 离散的 (即分类)。在这种情况下,x 变量是连续的。
标签: python matplotlib machine-learning regression data-visualization