python画数据分布图
时间: 2023-06-24 07:05:59 浏览: 106
Python 有很多画数据分布图的库,比如 Matplotlib、Seaborn、Plotly 等。以下是一个使用 Matplotlib 画直方图和密度图的例子:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成一组随机数据
data = np.random.randn(1000)
# 画直方图
plt.hist(data, bins=30, density=True, alpha=0.5, color='g')
# 画密度图
kde = gaussian_kde(data)
x_grid = np.linspace(data.min(), data.max(), 100)
plt.plot(x_grid, kde(x_grid), color='r')
plt.show()
```
其中,`data` 是一组随机数据,`bins` 指定直方图的条数,`density` 指定是否对数据进行归一化,`alpha` 指定透明度,`color` 指定颜色。`gaussian_kde` 是用于计算核密度估计的函数。
这段代码会画出一个包含直方图和密度图的图像。你可以根据需要调整参数和样式。
相关问题
python画累积分布图
以下是使用Python绘制累积分布图的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成一组随机数据
data = np.random.normal(size=1000)
# 绘制累积分布图
fig, ax = plt.subplots()
n, bins, patches = ax.hist(data, cumulative=True, bins=50, density=True, histtype='step', label='Cumulative')
ax.grid(True)
ax.legend(loc='right')
ax.set_title('Cumulative Distribution')
ax.set_xlabel('Value')
ax.set_ylabel('Probability')
plt.show()
```
解释代码:
- `np.random.normal(size=1000)` 生成1000个正态分布的随机数作为数据。
- `plt.subplots()` 创建一个包含单个轴的图形。
- `ax.hist()` 使用给定的数据绘制直方图。
- `cumulative=True` 将直方图设置为累积分布。
- `bins=50` 将数据分为50个区间。
- `density=True` 将频率规范化为概率密度。
- `histtype='step'` 绘制直方图的线条而不是填充颜色。
- `label='Cumulative'` 添加图例标签。
- `ax.grid(True)` 添加网格线。
- `ax.legend(loc='right')` 添加图例。
- `ax.set_title('Cumulative Distribution')` 设置图形标题。
- `ax.set_xlabel('Value')` 设置x轴标签。
- `ax.set_ylabel('Probability')` 设置y轴标签。
- `plt.show()` 显示图形。
python画粒径分布图
要画粒径分布图,一般我们需要先获取粒径数据,并将其按照一定的粒径区间进行分组统计。下面是一个简单的 Python 代码示例,可以实现从 Excel 文件中读取粒径数据,按照一定区间统计粒径数量,最终绘制出粒径分布图。
首先,我们需要安装 pandas 和 matplotlib 库,使用 pip 命令即可:
```
pip install pandas matplotlib
```
接着,我们可以按照以下步骤进行编码:
1. 导入库和数据
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取 Excel 数据
data = pd.read_excel('data.xlsx')
```
2. 定义粒径区间和统计函数
```python
# 粒径区间
bins = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
# 统计函数
def count_particles(d, bins):
counts = []
for i in range(len(bins)-1):
count = ((d >= bins[i]) & (d < bins[i+1])).sum()
counts.append(count)
return counts
# 统计粒径数量
counts = count_particles(data['d'], bins)
```
3. 绘制粒径分布图
```python
# 绘制直方图
plt.bar(bins[:-1], counts, width=10)
# 设置坐标轴标签
plt.xlabel('粒径区间')
plt.ylabel('粒径数量')
# 显示图形
plt.show()
```
这样就可以得到一个简单的粒径分布图了。需要注意的是,上述代码中的“data.xlsx”是一个 Excel 文件,它包含一列名为“d”的数据,表示粒径大小。如果你的数据格式不同,需要相应地修改代码。同时,粒径区间和统计函数也可以根据实际情况进行修改。
阅读全文