pandas如何绘制分箱图
时间: 2023-06-03 14:05:55 浏览: 106
您可以使用pandas中的DataFrame.plot.hist()方法绘制分箱图。例如,如果有一个DataFrame df,您可以使用以下代码绘制一个包含10个箱体的分箱图:
```
df.plot.hist(bins=10)
```
相关问题
python 利用Pandas 对数据分箱,统计每个箱中的数量,使用matplotlib绘制出来
您好,关于您的问题,我可以为您提供一些思路和代码实现。首先,我们需要明确数据箱的方法,常见的有等距分箱和等频分箱,本次示例以等距分箱为例进行说明。
1. 数据准备
假设我们有一个 dataframe 包含某城市房价的数据,包括每个房子的面积(square_feet)和价格(price)。
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 创建模拟数据
np.random.seed(2022)
n = 200
df = pd.DataFrame({
'square_feet': np.random.normal(1200, 250, n),
'price': np.random.normal(600000, 90000, n)
})
```
2. 数据分箱
使用 Pandas 中的 cut 函数对数据进行分箱,此处等分为4组:
```python
# 将面积分为4组
df['square_feet_bins'] = pd.cut(df['square_feet'], bins=4)
# 统计每个箱子中的数量
square_feet_count = df.groupby('square_feet_bins')['square_feet'].count().reset_index()
```
3. 绘制图表
使用 matplotlib 中的 bar 函数绘制出每个箱子中的数据数量:
```python
# 绘制条形图
fig, ax = plt.subplots()
ax.bar(square_feet_count['square_feet_bins'], square_feet_count['square_feet'])
ax.set_xlabel('Square feet')
ax.set_ylabel('Count')
plt.show()
```
完整代码如下:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 创建模拟数据
np.random.seed(2022)
n = 200
df = pd.DataFrame({
'square_feet': np.random.normal(1200, 250, n),
'price': np.random.normal(600000, 90000, n)
})
# 将面积分为4组
df['square_feet_bins'] = pd.cut(df['square_feet'], bins=4)
# 统计每个箱子中的数量
square_feet_count = df.groupby('square_feet_bins')['square_feet'].count().reset_index()
# 绘制条形图
fig, ax = plt.subplots()
ax.bar(square_feet_count['square_feet_bins'], square_feet_count['square_feet'])
ax.set_xlabel('Square feet')
ax.set_ylabel('Count')
plt.show()
```
希望这个例子能对您有所帮助。
python 利用Pandas 对数据分箱,统计每个箱中的数量,使用matplotlib中的点绘制绘制出来
。非常感谢您的提问!关于您的问题,以下是一个基本的解决方案。首先,我们需要将数据分箱并统计每个箱中的数量,可以使用 Pandas 中的 cut 和 value_counts 函数实现。
```python
import pandas as pd
# 生成随机数据
data = pd.DataFrame({'value': np.random.randint(0, 100, size=1000)})
# 将数据分成 10 个区间,并统计每个区间的数量
data['bin'] = pd.cut(data['value'], bins=10)
bin_count = data['bin'].value_counts().sort_index()
# 打印每个区间的数量
print(bin_count)
```
以上代码将随机生成的数据分成了 10 个区间,并统计了每个区间的数量。接下来,我们可以使用 Matplotlib 中的 scatter 函数将这些数据点绘制出来。
```python
import matplotlib.pyplot as plt
# 将 bin_count 转化为 x, y 坐标
x = bin_count.index.mid
y = bin_count.values
# 绘制散点图
plt.scatter(x, y)
plt.show()
```
以上代码将绘制出按照值分箱后,每个箱中数据数量的散点图。当然,这只是一个基本的方案,实际应用中还需要根据数据的特点和需求进行适当的调整和改进。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pt](https://img-home.csdnimg.cn/images/20210720083646.png)