帕累托图python代码
时间: 2023-11-09 22:03:37 浏览: 185
好的,以下是绘制帕累托图的Python代码:
```python
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C', 'D', 'E']
values = [50, 20, 10, 5, 15]
fig, ax = plt.subplots()
ax.bar(categories, values)
cumulative_values = [sum(values[:i+1]) for i in range(len(values))]
cumulative_percentage = [x / sum(values) * 100 for x in cumulative_values]
ax2 = ax.twinx()
ax2.plot(categories, cumulative_percentage, 'ro-', ms=5)
ax2.set_ylim([0, 110])
plt.show()
```
相关问题
帕累托图python
帕累托图(Pareto Chart)是一种用于展示数据中最重要因素的图表,它结合了柱状图和折线图的特点。在Python中,可以使用一些库来绘制帕累托图,比如matplotlib和seaborn。
下面是一个使用matplotlib库绘制帕累托图的示例代码:
```python
import matplotlib.pyplot as plt
# 数据
categories = ['A', 'B', 'C', 'D', 'E']
values = [30, 20, 15, 10, 25]
# 计算累计百分比
total = sum(values)
cumulative_percentage = [sum(values[:i+1])/total*100 for i in range(len(values))]
# 绘制柱状图和折线图
fig, ax1 = plt.subplots()
ax1.bar(range(len(categories)), values, color='b')
ax1.set_ylabel('数量')
ax2 = ax1.twinx()
ax2.plot(range(len(categories)), cumulative_percentage, 'r-', marker='o')
ax2.set_ylim(0, 100)
ax2.set_ylabel('累计百分比')
# 设置x轴刻度标签
plt.xticks(range(len(categories)), categories)
# 添加网格线
ax1.grid(True)
plt.title('帕累托图')
plt.show()
```
这段代码中,`categories`表示各类别,`values`表示各类别对应的数量。我们通过计算累计百分比来确定每个类别的重要性,然后使用`bar`函数绘制柱状图,使用`plot`函数绘制折线图。最后,通过一些设置和调整来美化图表,并展示出来。
希望能帮到你!如果有更多问题,请随时提问。
python代码,使用数据拟合广义帕累托分布
在 Python 中,可以使用 `scipy.stats` 模块中的 `genpareto` 类来拟合数据的广义帕累托分布。示例代码如下:
```python
import numpy as np
from scipy.stats import genpareto
import matplotlib.pyplot as plt
# 生成随机数据
data = genpareto.rvs(c=2, loc=0, scale=1, size=1000)
# 拟合广义帕累托分布
param = genpareto.fit(data)
# 绘制拟合后的概率密度函数
x = np.linspace(0, 5, 100)
pdf_fitted = genpareto.pdf(x, *param[:-2], loc=param[-2], scale=param[-1])
plt.plot(x, pdf_fitted, label='Fitted')
plt.hist(data, bins=20, density=True, alpha=0.5, label='Data')
plt.legend()
plt.show()
```
在代码中,我们首先使用 `genpareto.rvs` 生成了一个随机样本,其中 `c=2` 是广义帕累托分布的形状参数。然后使用 `genpareto.fit` 对数据进行了拟合,返回了估计的参数。最后,使用 `genpareto.pdf` 计算了拟合后的概率密度函数,并使用 `hist` 和 `plot` 函数绘制了数据的直方图和拟合后的概率密度函数。
阅读全文