修改代码,是下面的代码画出的多折线图显示点值import pandas as pd import matplotlib.pyplot as plt # 读取 Excel 表格数据 df = pd.read_excel('C:/Users/86186/Desktop/附件2:调查数据.xlsx') plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False grouped_data = df.groupby(['3、您所在的年级', '16、若有人工智能学习工具,影响您使用人工智能学习软件的原因是什么?'])['16、若有人工智能学习工具,影响您使用人工智能学习软件的原因是什么?'].count().unstack() fig, ax = plt.subplots() grouped_data.plot(ax=ax) ax.set_xlabel('年级') ax.set_ylabel('人数') plt.show()
时间: 2023-08-07 19:04:18 浏览: 93
如果您想要在代码中添加显示点值的功能,可以在 `grouped_data.plot(ax=ax)` 后面添加 `plt.scatter()` 函数来实现。下面是修改后的代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取 Excel 表格数据
df = pd.read_excel('C:/Users/86186/Desktop/附件2:调查数据.xlsx')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
grouped_data = df.groupby(['3、您所在的年级', '16、若有人工智能学习工具,影响您使用人工智能学习软件的原因是什么?'])['16、若有人工智能学习工具,影响您使用人工智能学习软件的原因是什么?'].count().unstack()
fig, ax = plt.subplots()
grouped_data.plot(ax=ax)
# 循环添加数据标签
for col in grouped_data.columns:
for i, val in enumerate(grouped_data[col]):
if pd.notna(val):
ax.scatter(i, val, s=50, color='red')
ax.text(i, val, str(val))
ax.set_xlabel('年级')
ax.set_ylabel('人数')
plt.show()
```
上述代码中,我们使用了 `plt.scatter()` 函数来绘制数据点,并使用 `ax.text()` 函数在点旁边添加数据标签。在循环中,我们遍历每一列数据,再遍历每个元素,如果该元素不为 NaN,则绘制数据点和数据标签。
您可以根据自己的需求修改代码中的文件路径和参数,来实现自己想要的多折线图显示点值。
阅读全文