Matplotlib图形对齐

2024-06-01 04:20:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在一场特殊的轮滑德比比赛中用图表表示得分和点球。本场比赛共有41次果酱,但并不是每一次果酱都会累积积分或点球。你知道吗

我想创建一个每队点球的条形图,覆盖一个每队得分的散点图。X轴是果酱,因为点球和分数来自同一场比赛,所以它们与相同的果酱号码有关。你知道吗

当我用两个图表创建一个图形时,x轴没有正确对齐。当条形图从果酱1开始时,散点图与果酱1在果酱3的某处对齐。你知道吗

Inaccurate Double Graph

当我分别查看每个图时,散点图在第一次阻塞之前有一个缩进,但条形图紧靠y轴。你知道吗

points scatterplot

penalties barchart

以下是正在绘制的数据:

GJPoints
    jam_id  points
18  5   4
25  7   8
33  11  4
19  13  10
34  14  2
26  15  18
35  16  9
20  17  2
27  19  5
21  21  4
28  22  1
36  23  20
22  24  4
37  26  10
41  27  8
29  30  5
38  31  15
30  32  8
42  33  10
23  35  4
31  37  4
24  38  14
39  39  3
32  40  2
40  41  4

DJPoints
    jam_id  points
0   1   13
2   2   3
8   3   13
12  4   4
1   6   10
3   8   9
13  9   5
9   12  3
14  13  14
4   14  16
5   25  3
10  28  5
6   29  5
15  31  4
11  34  8
7   35  4
16  36  6
17  40  3

df1 (penalties)
    jam_number  team_name   name
0   1   Gotham Girls Roller Derby   3
1   3   Gotham Girls Roller Derby   2
2   4   Denver Roller Derby 2
3   4   Gotham Girls Roller Derby   1
4   5   Gotham Girls Roller Derby   2
5   6   Denver Roller Derby 1
6   8   Denver Roller Derby 2
7   9   Denver Roller Derby 1
8   9   Gotham Girls Roller Derby   1
9   10  Gotham Girls Roller Derby   1
10  12  Denver Roller Derby 2
11  13  Gotham Girls Roller Derby   3
12  14  Denver Roller Derby 1
13  14  Gotham Girls Roller Derby   2
14  15  Denver Roller Derby 1
15  16  Denver Roller Derby 2
16  19  Denver Roller Derby 1
17  20  Denver Roller Derby 2
18  21  Gotham Girls Roller Derby   1
19  23  Denver Roller Derby 2
20  24  Denver Roller Derby 1
21  25  Denver Roller Derby 1
22  25  Gotham Girls Roller Derby   1
23  26  Denver Roller Derby 2
24  27  Denver Roller Derby 1
25  28  Gotham Girls Roller Derby   2
26  30  Denver Roller Derby 1
27  30  Gotham Girls Roller Derby   2
28  31  Denver Roller Derby 4
29  33  Denver Roller Derby 1
30  33  Gotham Girls Roller Derby   1
31  34  Gotham Girls Roller Derby   1
32  35  Denver Roller Derby 2
33  35  Gotham Girls Roller Derby   1
34  36  Denver Roller Derby 1
35  37  Denver Roller Derby 1
36  38  Denver Roller Derby 2
37  38  Gotham Girls Roller Derby   1
38  39  Gotham Girls Roller Derby   1
39  40  Denver Roller Derby 1
40  41  Denver Roller Derby 1

下面是我用来创建图表的代码:

fig, ax=plt.subplots (figsize=(15,8) )
sns.barplot(x="jam_number", y="name" , hue="team_name", data=df1 )

ax.legend(title="Team Name")
ax.set_yticks([0, 1, 2, 3, 4])
ax.set(xlabel='Jam Number', ylabel='Penalties/Points')
ax2 = ax.twinx()
ax2.scatter(x=DJPoints["jam_id"], y=DJPoints["points"], color="blue")
ax2.scatter(x=GJPoints["jam_id"], y=GJPoints["points"], color="red")

Tags: nameidaxrollerpoints条形图jam果酱