把上面图的每一个时长都做成一个柱状
时间: 2024-02-12 13:03:57 浏览: 23
要将上面的条形图的每一个时长都做成一个柱状,可以使用 `pivot_table()` 函数将数据从长格式转换为宽格式,然后使用 `bar()` 函数绘制柱状图。修改代码如下:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 创建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'Grade': [1, 2, 2, 3, 3],
'Internet Time': ['<1 hour', '1-2 hours', '2-3 hours', '3-4 hours', '>4 hours']}
df = pd.DataFrame(data)
# 将数据从长格式转换为宽格式
table = pd.pivot_table(df, values='Name', index='Grade', columns='Internet Time', aggfunc=len)
# 绘制柱状图
table.plot(kind='bar', stacked=True)
# 设置坐标轴标签和图例
plt.xlabel('Grade')
plt.ylabel('Count')
plt.legend(title='Internet Time', loc='upper left')
# 显示图形
plt.show()
```
这段代码首先使用 `pivot_table()` 函数将数据从长格式转换为宽格式,即以年级为行,上网时间段为列,人数为值的形式。然后使用 `bar()` 函数绘制柱状图,设置 `stacked=True` 让不同的时长堆叠在一起。最后设置坐标轴标签和图例,并显示图形。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![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_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)
![](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)