python - X 轴上的百分位数与 matplotlib

标签 python matplotlib

我有一个排序的 numpy float 组,我想绘制它。我想在 x 轴上打印百分位数。我知道如何获取百分位值。

这是我所拥有的,但我不知道如何处理我的百分位数值数组:

import numpy as np
import pylab as P
import matplotlib as mp

d = np.loadtxt("report.stats.sorted")
pct = mp.mlab.prctile(d, p=(0.0, 10.0, 25.0, 50.0, 75.0, 90.0, 100.0))

P.plot(d)
P.show()

该图显示了一条漂亮的曲线,但 x 轴显示了带有条目数的刻度。我想要的是在适当位置显示 [0.0, 25.0, 50.0, 75.0, 100.0] 的刻度。 enter image description here 抱歉,如果不清楚。

最佳答案

如果您只想更改 xticklabels 以显示百分位数排名,您可以将刻度的位置设置为绘制数组长度的百分比,并将标签设置为百分位数排名:

from matplotlib import mlab
import matplotlib.pyplot as plt
import numpy as np

d = np.sort(np.random.randint(0,1000,1000)).cumsum()

# Percentile values
p = np.array([0.0, 25.0, 50.0, 75.0, 100.0])

perc = mlab.prctile(d, p=p)

plt.plot(d)
# Place red dots on the percentiles
plt.plot((len(d)-1) * p/100., perc, 'ro')

# Set tick locations and labels
plt.xticks((len(d)-1) * p/100., map(str, p))

plt.show()

enter image description here

关于python - X 轴上的百分位数与 matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153054/

相关文章:

python - 获取 'package' 和 'endpackage' 可选字符串之外的结构名称列表

matplotlib - 将 Anaconda Python 3.4 与 PyQt5 结合使用

python - Matplotlib 无处不在地绘制未定义的图

python - PIL.ImageChops.subtract 和首先转换为 numpy 数组然后减去它们之间有什么区别?

python - 安装后 cx_freeze 无法获取 zip 导入器

python - 用于生产的 Gunicorn max_requests

Python - 无法解码 html (urllib)

python - 如何在 matplotlib 中旋转 ticklabel_format?

python - 二维图的 1sigma 置信区域

python - 在 Python 中更改堆积条形图图例