Python-Matplotlib,纵轴显示百分位数10,50、90的三个点,横轴不显示任何数据
时间: 2024-05-15 14:18:28 浏览: 123
你可以使用Matplotlib库中的PercentFormatter和EmptyLocator类来实现这个需求。以下是一个示例代码:
```
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import PercentFormatter, NullLocator
# 生成随机数据
data = np.random.normal(size=10000)
# 创建子图
fig, ax = plt.subplots()
# 绘制直方图
n, bins, patches = ax.hist(data, bins=50, density=True)
# 设定纵轴标签为百分位数
ax.yaxis.set_major_formatter(PercentFormatter(1.0))
# 禁止横轴刻度显示
ax.xaxis.set_major_locator(NullLocator())
# 绘制纵轴的10%、50%、90%三个点
quantiles = np.percentile(data, [10, 50, 90])
ax.plot(quantiles, [0.1, 0.5, 0.9], 'ro')
plt.show()
```
这段代码会生成一个直方图,并在纵轴下方显示三个红点,表示数据的10%、50%、90%分位数。横轴不会显示任何数据。
相关问题
Python-Matplotlib,将百分位数10,50、90的三个点显示在相同横坐标,不同纵坐标上
你可以使用Matplotlib库的percentile函数来计算百分位数,并将这些数值作为y轴坐标,同时将10、50和90作为x轴坐标。下面是一个示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成一些示例数据
data = np.random.normal(size=1000)
# 计算10、50、90百分位数
percentiles = np.percentile(data, [10, 50, 90])
# 绘制水平线
plt.axhline(y=percentiles[0], color='r', linestyle='-')
plt.axhline(y=percentiles[1], color='g', linestyle='-')
plt.axhline(y=percentiles[2], color='b', linestyle='-')
# 设置x轴坐标
plt.xticks([10, 50, 90], ['10%', '50%', '90%'])
# 绘制图形
plt.plot(data)
# 显示图形
plt.show()
```
这段代码会生成一个包含百分位数的Matplotlib图形,其中10%、50%、90%三个点分别显示在不同的y轴坐标上。你可以根据需要修改这些百分位数和坐标轴标签。
pythonpython-matplotlib 绘制函数曲线
Python中的`matplotlib`是一个非常强大的数据可视化库,可以方便地绘制各种类型的图表,包括函数曲线。首先,你需要安装matplotlib,如果还没有安装,可以使用pip安装:
```bash
pip install matplotlib
```
下面是一个简单的例子,展示如何使用`matplotlib`来绘制一条正弦函数曲线:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建x轴的值,通常我们会从0到2π,步长为0.01
x = np.linspace(0, 2 * np.pi, 400)
# 计算对应x值的y值,这里是正弦函数sin(x)
y = np.sin(x)
# 创建一个新的图形窗口
plt.figure()
# 使用plot函数绘制曲线
plt.plot(x, y)
# 设置标题和坐标轴标签
plt.title('Sine Function')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图形
plt.show()
```
在这个例子中,我们创建了一个线性空间的x值,并计算了它们对应的正弦值。然后,`plot()`函数将x和y值连接起来形成曲线。最后,通过`title()`, `xlabel()`, 和 `ylabel()` 设置图表的元信息,并用`show()`显示结果。
阅读全文