我有数据。 有一些人参加会议。会议分为演讲。每个会议和演讲的组合都有许多参与者。一次会议的参加人数不变。换句话说,参加者的人数只因会议而异。
data = [
['group_1', 1, 1, 68],
['group_2', 1, 1, 35],
['group_1', 1, 2, 68],
['group_2', 1, 2, 35],
['group_1', 2, 1, 78],
['group_2', 2, 1, 25],
['group_1', 2, 2, 78],
['group_2', 2, 2, 25],
['group_1', 3, 1, 73],
['group_2', 3, 1, 30],
['group_1', 3, 2, 73],
['group_2', 3, 2, 30]]
df = pd.DataFrame(data, columns=['group_name', 'meeting', 'present', 'members'])
X正在开会,y是与会人数。我想画这样的东西。
df.groupby(['group_name']).plot(
x='meeting', y='members',
color='#4b0082', linewidth=3,
marker='h', markerfacecolor='lightgreen', markeredgewidth=1, markersize=9, markevery=1);
但是,我想添加标题作为组名并在y轴上签名。当我对所有数据运行此代码时,我也遇到了问题,由于某种原因,我在图上有加分。
在第一个图表上,计数应从会议27开始,并且会议区域40中存在异常。在第二个图表上,在27会议区域中存在异常。
答案 0 :(得分:1)
自pandas >= 1.1.0
起,我们在DataFrame.plot
中使用了ylabel
自变量。另外,我们将稍微重写您的组,以便我们可以访问组名:
for grp, d in df.groupby('group_name'):
d.plot(
x='meeting',
y='members',
color='#4b0082',
ylabel='members',
title=grp,
linewidth=3,
marker='h',
markerfacecolor='lightgreen',
markeredgewidth=1,
markersize=9,
markevery=1
)